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