肖鵬,屈盼讓,孫少華,李慶楠
(中航工業西安航空計算技術研究所,陜西西安,710119)
串行通信廣泛應用于數字通信和工業控制領域,傳統的專用串口通信芯片接口復雜,體積較大,隨著微電子技術的發展,FPGA在數字電路設計中被廣泛使用,完全可以將串口通信的功能集成在FPGA內,這樣不僅減少了外圍電路的體積,降低了設計的復雜性,同時可通過設計可以提高數據通信的可靠性。
如圖1所示,異步串行通信系統由傳感器/數據模塊、電平轉換模塊、FPGA和上位機組成。核心部分是FPGA。FPGA控制完成串行數據的采集和發送,上位機通過軟件讀取FPGA中FIFO的數據或向FIFO中發送數據。
在數據接收中對數據的接收是在監測到起始位后按照要求的波特率采樣,在通信過程中受到干擾的話就會出現監測到假數據起始位,造成數據錯誤和誤碼。為了提高接收數據的準確性,減少誤碼率,應采用數據傳輸波特率n(n≥1)倍的速率對數據進行采樣。

圖1 系統原理框圖

圖2 16倍波特率速率采樣示意圖

圖3 16倍波特率速率采樣時情況1

圖4 16倍波特率速率采樣時情況2
以16倍波特率速率采樣為例:采用數據傳輸速率的16倍進行采樣,采樣時鐘連續采樣到8個低電平信號時可以確定此時的低電平信號為正確的數據起始位,這樣可以排除干擾信號產生的錯誤起始位信號。在采集到第8個低電平之后,每隔16個采樣時鐘對數據采樣一次,并將采樣到的數據作為接收的數據發送給移位寄存器,最后通過移位存入到接收FIFO中。……