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