基于CPLD/FPGA的多串口設(shè)計與實現(xiàn)
摘要:在工業(yè)控制中如何提高一對多的串口通訊可靠性和系統(tǒng)的集成性成為研究熱點(diǎn)。本文利用嵌入式技術(shù),提出基于CPLD/FPGA的多串口擴(kuò)展設(shè)計方案。實現(xiàn)并行口到多個全雙工異步通訊口之間的轉(zhuǎn)換,并根據(jù)嵌入式系統(tǒng)實時性的需要,在每個UART接收器中開辟了8個接收緩沖單元,實現(xiàn)高速嵌入式CPU與RS232通訊設(shè)備之間的速度匹配,同時,串行口波特率等參數(shù)可根據(jù)需要進(jìn)行設(shè)置。通過實踐證明,本文設(shè)計的基于CPLD/FPGA的多串口完全符合工業(yè)控制中一對多串口通訊的要求。
關(guān)鍵詞:CPLD/FPGA;多串口擴(kuò)展;全雙工;異步通信;嵌入式系統(tǒng)
在工業(yè)控制中,設(shè)備的通訊與控制主要采用簡潔高效的串口方式進(jìn)行。工控機(jī)通過PCI擴(kuò)展卡方式進(jìn)行串口的擴(kuò)展,或采用電路復(fù)雜的擴(kuò)展芯片實現(xiàn)串口擴(kuò)展。隨著嵌入式技術(shù)發(fā)展,嵌入式系統(tǒng)的應(yīng)用逐步代替了成本高昂的工業(yè)控制計算機(jī)。為了簡化硬件電路的設(shè)計,降低系統(tǒng)成本,本文提出了一種基于CPLD/FPGA多串口擴(kuò)展的方案,實現(xiàn)多個外設(shè)串口的擴(kuò)展和管理,同時解決一對多的串口通訊可靠性問題,滿足嵌入式系統(tǒng)串口擴(kuò)展的需求。
1 系統(tǒng)結(jié)構(gòu)
本設(shè)計以CPLD/FPGA芯片為核心,在芯片內(nèi)部通過設(shè)計、編程實現(xiàn)并行總線接口到多個串行口的擴(kuò)展。設(shè)計的多串口擴(kuò)展包括并行總線接口、4路接收緩沖器、4路發(fā)送器、波特率發(fā)生器和UART接口。為實現(xiàn)高速嵌入式CPU與RS232通訊設(shè)備之間的速度匹配,充分利用嵌入式系統(tǒng)的實時性,在每個接收緩沖器中開辟了8個接收緩沖單元。在實際應(yīng)用中,可根據(jù)嵌入式系統(tǒng)擴(kuò)展的需要,靈活增減串口數(shù)量以及接收緩沖單元個數(shù)。在通訊過程,波特率發(fā)生器的時鐘信號由外部有源晶振提供,選擇合適的晶振頻率即可獲得高性能的數(shù)據(jù)傳輸。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 功能模塊設(shè)計
2.1 接收緩沖模塊
2.1.1 接收緩沖模塊構(gòu)架
在設(shè)計過程中,為便于串口擴(kuò)展功能的實現(xiàn),將功能相似的部件進(jìn)行了集成。本設(shè)計以4路UART接口擴(kuò)展為例,接收緩沖部分包含了4個獨(dú)立的接收緩沖器,其結(jié)構(gòu)如圖2所示。接收緩沖器共用clk時鐘信號,并將其作為串行數(shù)據(jù)接收的波特率;每個接收緩沖器均有單獨(dú)的rxd、bf、cs引腳,其功能分別為:串行數(shù)據(jù)輸入、接收緩沖器儲存狀態(tài)、接收緩沖器片選。各接收緩沖器的片選端分別與2-4譯碼器的輸出腳相連。譯碼器的輸入端構(gòu)成了4路接收緩沖器選擇的地址線,分別對應(yīng)a3、a4腳;結(jié)構(gòu)圖中數(shù)據(jù)總線d0~d7、讀緩沖端rd、緩沖儲存狀態(tài)清‘0’端clr和緩沖單元地址線a0~a2為共用信號端口,分別與4個接收緩沖器相連。
評論