摘 要:信息網絡課程是電子信息專業的一門重要的專業課程,通過該課程的學習,使得學生對數據與計算機通信獲得較完整的概念,并掌握數據通信的基本理論,為以后學習現代通信網,并為從事數據通信和計算機通信工作提供知識儲備。同時EDA(電子設計自動化)技術作為現代電子設計技術的核心,在電子信息、通信等領域的應用也越來越廣泛。本文通過通用異步收發器的設計實例,把EDA技術應用于信息網絡課程的教學當中,一方面使得網絡課程的理論教學更加直觀,大大增強了學生的感性認識,另一方面鍛煉了學生的實際動手能力。在實踐教學中取得了良好的教學效果。
關鍵詞:信息網絡 數據通信 EDA技術
中圖分類號:TN791;G642.3文獻標識碼:A 文章編號:1673-9795(2014)01(a)-0156-02
數據通信系統中,通過串行通信來達到交換信息數據的目的是經常采用的方式。異步串行通信要求的傳輸線少,可靠性高,傳輸距離遠,被廣泛應用于PC機和外設的數據交換。通常都由通用異步收發器UART(Universal Asynchronous Receiver/Transmitter)來實現該功能。同時在電子設計領域中,SOC片上系統技術日趨成熟,設計者可以在單塊或極少數的幾塊芯片中實現整個系統的功能,將UART的功能模塊集成到可編程邏輯器件FPGA (Field Programmable Gate Array)中。利用EDA(Electronic Design Automation)技術優點來設計串行通信接口,不僅可以直觀的讓同學們了解到數據鏈路層的工作原理,還可以在分工協作中深刻領會EDA技術在網絡通信中的實際應用。
1 UART工作原理和流程
通過對UART工作原理的分析,我們把整個系統模塊可劃分波特發生器,內核,信號檢測器,移位寄存器,奇偶校驗器,總線選擇器和計數器等。UART的工作流程可以分為發生和接收兩個過程。
1.1 接收過程
當UART信號監測器模塊的輸入口偵測到數據時,即輸入口由高電平變為低電平,UART讀取串行數據并且將數據并行輸給計算機。首先UART內核會重置波特率發生器和移位寄存器,并且設置移位寄存器的時鐘為波特率時鐘,以準備接收串行數據。接著,移位寄存器模塊在波特率時鐘的驅動下,不斷讀取串行總線的輸入數據,并將串行數據保存在內部的寄存器中。接收完畢,UART內核會對已接收的數據進行奇偶校驗并輸出校驗結果。同時,UART內核會復位信號監測器,以準備進行下一次數據接收。
1.2 發送過程
由加載Load和發送Send兩個部分組成,如圖3所示。加載是內核依串行發送的順序將起始位、數據位和奇偶校驗位依次加載到移位寄存器內,這個過程移位寄存器工作在系統時鐘下,相對于外部總線傳輸速度來說非常快。完成加載后,內核會復位波特率發生器,并且指示移位寄存器工作在波特率模式下,移位寄存器便在波特率時鐘下依次將加載的數據發送到發送口。
2 UART奇偶校驗位發生器的設計
奇偶校驗位發生器的功能:(1)依據奇偶校驗規則(奇校驗ODD,偶校驗EVEN)的選定和輸入的串行二進制數據,計算出校驗位并與輸入的串行數據的校驗位比較來判斷數據的正誤;(2)根據校驗規則為由計算機發來的并行數據,添加校驗位。
利用modelsim軟件對上述奇偶校驗位發生器進行功能仿真,由仿真結果知,此模塊設計正確,其功能滿足設計要求。
3 UART波特率發生器模塊的設計
波特率發生器分別為數據接收和發送過程中的計數器以及串行數據發送過程中的移位寄存器提供時鐘。本文采用9600 bit/s的波特率發送和接收串行數據。波特率發生器的功能是產生和RS-232通信所采用的波特率同步的時鐘,這樣才能正確無誤地按照RS-232串行通信的時序要求進行數據發送或者接收。若要得到占空比為50%的波特率時鐘,只要讓計數器在計數到5208×50%=2604時輸出高電平,之后在計數到5208時,輸出置低電平并且重新計數,就能實現和9600 bit/s 同步的時鐘。
4 UART頂層模塊的設計
頂層模塊用來實現收發內核和各模塊之間的連接,接口定義如表1所示。
在波特率為9600 bit/s下,對UART進行發送功能仿真,得到數據發送的仿真結果如圖4所示。
圖中表明,TOTAL_BIT表示總數據位數,由計算機發送給UART的等待從TxD口發送的數據send_bus是01010101,由send信號觸發后,TxD輸出001010101,其中第一位是起始位,中間的八位是send_bus,TxD發送完成后輸出指示信號send_over。RxD上的數據為0101010010,其中起始位為0,之后是10101010。recv_buf最終變為了10101010,接收完成后recv會輸出保持一個時鐘周期的高電平。
5 結語
本文通過基于FPGA的UART的設計,實現了異步串行通訊的基本功能,并通過modelsim仿真軟件進行了功能仿真。本設計具有較大的靈活性,在實際運用中可根據外部設備的具體要求,調整波特率發生器模塊的分頻參數、設置不同的數據幀格式和校驗方式等。通過采用自頂向下的設計方法,首先進行立題分析,然后對各個模塊進行分解,交給同學們分組完成。通過這種方法,不僅大大加深了同學們對數據鏈路層、奇偶校驗和波特率設置的概念理解,而且也讓同學們對EDA技術在實際通信網絡中的應用有了直觀的認識,通過這樣的教學方法,把EDA技術與信息網絡課程的教學更緊密結合起來,在實際教學中起到了良好的效果。
參考文獻
[1]William Stallings,著.數據與計算機通信[M].王海,張娟,譯.電子工業出版社,2004.
[2]潘松,黃繼業.EDA技術實用教程[M].北京:科學出版社,2010.
[3]康華光.電子技術基礎數字部分[M].5版.北京:高等教育出版社,2006.
[4]周荷琴,吳秀清.微型計算機原理與接口技術[M].4版.合肥:中國科學技術大學出版社,2008.