基于CPLD的異步串行通訊控制器的研究與設(shè)計
3異步串行通訊控制器的結(jié)構(gòu)設(shè)計
異步串行通訊控制器的內(nèi)部結(jié)構(gòu)可分為控制邏輯電路和寄存器組兩大部分。在控制邏輯電路中,包括波特率控制電路、讀寫控制邏輯電路、發(fā)送控制電路、接收控制電路、調(diào)制解調(diào)器控制邏輯電路、中斷控制邏輯電路和內(nèi)部總線控制邏輯電路。寄存器組分為模式寄存器、控制寄存器和狀態(tài)寄存器。結(jié)構(gòu)框圖如圖2所示。
該異步串行通訊控制器提供的模式寄存器和控制寄存器,用來設(shè)定奇偶校驗、傳輸速率、握手機(jī)制以及中斷。在這個設(shè)計中,提供了3種奇偶校驗選擇:不采用、奇校驗或偶校驗。傳輸速率的設(shè)定是通過向模式寄存器中設(shè)置特定的數(shù)值,來選擇波特率因子,再結(jié)合外部連入的時鐘信號就可以得出傳輸?shù)牟ㄌ芈柿?。它們之間的關(guān)系是:時鐘頻率=波特率因子×波特率。
3.1發(fā)送數(shù)據(jù)模塊
串行異步通信的發(fā)送器的實現(xiàn)要比接收器簡單很多。沒有數(shù)據(jù)要發(fā)送時,發(fā)送數(shù)據(jù)寄存器為空,發(fā)送器處于空閑狀態(tài);當(dāng)檢測到發(fā)送數(shù)據(jù)寄存器滿信號后,發(fā)送器開始發(fā)送起始位,同時8個數(shù)據(jù)位被并行裝入發(fā)送移位寄存器,停止位緊接著數(shù)據(jù)位指示數(shù)據(jù)幀結(jié)束。只有發(fā)送數(shù)據(jù)寄存器為空時,待發(fā)送的數(shù)據(jù)才能被裝入,在設(shè)計中用一個TxE信號來告訴CPU此時控制器的發(fā)送寄存器為空。程序中使用計數(shù)器來保證發(fā)送數(shù)據(jù)時時鐘的正確。這里使用一個狀態(tài)機(jī)描述發(fā)送過程,圖3是發(fā)送器狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換示意圖。
評論