基于CPLD的異步串行通訊控制器的研究與設計
3異步串行通訊控制器的結構設計
異步串行通訊控制器的內部結構可分為控制邏輯電路和寄存器組兩大部分。在控制邏輯電路中,包括波特率控制電路、讀寫(xiě)控制邏輯電路、發(fā)送控制電路、接收控制電路、調制解調器控制邏輯電路、中斷控制邏輯電路和內部總線(xiàn)控制邏輯電路。寄存器組分為模式寄存器、控制寄存器和狀態(tài)寄存器。結構框圖如圖2所示。

該異步串行通訊控制器提供的模式寄存器和控制寄存器,用來(lái)設定奇偶校驗、傳輸速率、握手機制以及中斷。在這個(gè)設計中,提供了3種奇偶校驗選擇:不采用、奇校驗或偶校驗。傳輸速率的設定是通過(guò)向模式寄存器中設置特定的數值,來(lái)選擇波特率因子,再結合外部連入的時(shí)鐘信號就可以得出傳輸的波特率了。它們之間的關(guān)系是:時(shí)鐘頻率=波特率因子×波特率。
3.1發(fā)送數據模塊
串行異步通信的發(fā)送器的實(shí)現要比接收器簡(jiǎn)單很多。沒(méi)有數據要發(fā)送時(shí),發(fā)送數據寄存器為空,發(fā)送器處于空閑狀態(tài);當檢測到發(fā)送數據寄存器滿(mǎn)信號后,發(fā)送器開(kāi)始發(fā)送起始位,同時(shí)8個(gè)數據位被并行裝入發(fā)送移位寄存器,停止位緊接著(zhù)數據位指示數據幀結束。只有發(fā)送數據寄存器為空時(shí),待發(fā)送的數據才能被裝入,在設計中用一個(gè)TxE信號來(lái)告訴CPU此時(shí)控制器的發(fā)送寄存器為空。程序中使用計數器來(lái)保證發(fā)送數據時(shí)時(shí)鐘的正確。這里使用一個(gè)狀態(tài)機描述發(fā)送過(guò)程,圖3是發(fā)送器狀態(tài)機狀態(tài)轉換示意圖。

評論