楊 奇,劉 紅,李 斌
(昌吉學(xué)院 能源與控制工程學(xué)院,新疆 昌吉 831100)
通信總線是設(shè)備之間進(jìn)行交互的關(guān)鍵裝置之一[1]。但是,不同種類的通信總線具備不同的傳輸協(xié)議,致使其對應(yīng)的接口屬性也存在著較大的差異性,無法直接連接或者兼容應(yīng)用。近年來,國內(nèi)計(jì)算機(jī)、微電子、網(wǎng)絡(luò)與通信等技術(shù)發(fā)展速度飛快,遠(yuǎn)距離數(shù)據(jù)傳輸需求逐漸增多,相較于并行傳輸模式來看,串行傳輸模式應(yīng)用線路較少,被廣泛應(yīng)用于設(shè)備通信過程中。隨著串行傳輸模式的不斷發(fā)展與應(yīng)用,串口通信已經(jīng)成為計(jì)算機(jī)領(lǐng)域內(nèi)常用的通信協(xié)議之一。
為了滿足新興技術(shù)的發(fā)展需求,不同設(shè)備之間的交互活動(dòng)顯著增多,對通信總線接口性能提出了更高的需求[2]?,F(xiàn)有接口由于多種因素的局限,使得接口存在兼容性較差、經(jīng)濟(jì)成本較高、傳輸速度較慢、同步性較差等問題,制約著串口通信總線的應(yīng)用與發(fā)展。簡單的完善與修改無法明顯提升接口的整體性能,故提出基于EDA 技術(shù)的常用串口通信總線接口邏輯設(shè)計(jì),希望通過EDA 技術(shù)的引入與應(yīng)用,改善接口的傳輸性能、兼容性能等,降低接口的經(jīng)濟(jì)成本,為串口通信總線的發(fā)展提供助力。
根據(jù)常用串口通信總線接口完善需求,引入EDA技術(shù)搭建接口邏輯設(shè)計(jì)框架,為后續(xù)接口設(shè)計(jì)奠定堅(jiān)實(shí)的基礎(chǔ)[3]。
EDA 技術(shù)全稱為電子設(shè)計(jì)自動(dòng)化技術(shù),其主要應(yīng)用步驟如下所示:
步驟1:行為級描述。根據(jù)常用串口通信總線接口功能與性能需求,對接口整體電路進(jìn)行設(shè)計(jì)與描述,實(shí)現(xiàn)設(shè)計(jì)接口的行為級描述。
步驟2:行為級優(yōu)化。對上述步驟實(shí)現(xiàn)的設(shè)計(jì)接口行為級描述結(jié)果進(jìn)行優(yōu)化處理,主要通過適當(dāng)?shù)乃惴▽?shí)現(xiàn),并對其所需功能進(jìn)行仿真驗(yàn)證。與此同時(shí),由于EDA 工具只能夠?qū)TL 級描述進(jìn)行讀取與處理,還需要將行為級描述轉(zhuǎn)化為RTL 級描述。
步驟3:確定約束條件,完成邏輯優(yōu)化。約束條件指的是接口設(shè)計(jì)指標(biāo)——驅(qū)動(dòng)能力、芯片面積等,以此為基礎(chǔ),對步驟2 獲取的RTL 級描述進(jìn)行映射處理,關(guān)聯(lián)邏輯設(shè)計(jì)與實(shí)現(xiàn)器件,執(zhí)行工藝操作實(shí)現(xiàn)邏輯設(shè)計(jì)的整體優(yōu)化。
步驟4:門級仿真。門級仿真應(yīng)用了仿真庫、門單元延時(shí)信息、相應(yīng)工藝等,對邏輯設(shè)計(jì)內(nèi)容進(jìn)行仿真驗(yàn)證,依據(jù)工藝參數(shù)選取最佳的門單元,實(shí)現(xiàn)門級仿真的最佳化。
步驟5:布局布線。布局布線工具主要由FPGA 控制器提供,其是EDA 技術(shù)實(shí)現(xiàn)的關(guān)鍵器件之一。
步驟6:寫片與測試。將步驟5 獲取的布局布線文件傳輸至設(shè)計(jì)接口芯片上,完成寫片過程,并對設(shè)計(jì)好的串口通信總線接口進(jìn)行性能測試,保障接口的可靠性與可行性[4]。
基于上述介紹的EDA 技術(shù)應(yīng)用流程,搭建接口邏輯設(shè)計(jì)框架,具體如圖1 所示。
圖1 接口邏輯設(shè)計(jì)框架示意圖
上述過程完成了接口邏輯設(shè)計(jì)框架的搭建,為后續(xù)接口邏輯設(shè)計(jì)、實(shí)現(xiàn)器件的選取提供支撐。
以上述搭建的接口邏輯設(shè)計(jì)框架為依據(jù),選取適當(dāng)?shù)膶?shí)現(xiàn)器件,其是EDA 技術(shù)應(yīng)用的關(guān)鍵所在,也是接口邏輯設(shè)計(jì)的主要環(huán)節(jié)之一。實(shí)現(xiàn)器件是接口配置文件的載體,根據(jù)常用串口通信總線接口邏輯設(shè)計(jì)需求,選取FPGA 控制器作為實(shí)現(xiàn)器件。
FPGA 控制器具有可重復(fù)編程的優(yōu)勢,可以實(shí)現(xiàn)復(fù)雜的邏輯設(shè)計(jì),符合接口邏輯設(shè)計(jì)的需求[5]。但是,在FPGA 控制器應(yīng)用過程中,還需要對其進(jìn)行針對性設(shè)計(jì),使其更加符合研究目標(biāo)實(shí)現(xiàn)要求[6]。依據(jù)接口設(shè)計(jì)需求,制定FPGA 控制器設(shè)計(jì)流程,具體如圖2 所示。
圖2 FPGA 控制器設(shè)計(jì)流程圖
綜上所述,完成了接口邏輯設(shè)計(jì)實(shí)現(xiàn)器件的選取與設(shè)計(jì),為后續(xù)接口的具體設(shè)計(jì)提供幫助。
以上述選取的接口邏輯設(shè)計(jì)實(shí)現(xiàn)器件——FPGA控制器為工具,設(shè)計(jì)具體數(shù)字接口,其主要由RS 232 接收模塊、I2C 接收模塊與SPI 接收模塊構(gòu)成[7]。其中,RS 232 接收模塊主要是對RS 232 數(shù)據(jù)模式進(jìn)行接收。RS 232 數(shù)據(jù)幀格式如圖3 所示。
圖3 RS 232 數(shù)據(jù)幀格式示意圖
由于通信雙方(LSB 與MSB)具備獨(dú)立時(shí)鐘,使得RS 232 數(shù)據(jù)接收精度受到了一定的影響,需要對時(shí)鐘頻率、分頻系數(shù)進(jìn)行確定,以此來保障RS 232 數(shù)據(jù)接收的準(zhǔn)確性[8]。其中,時(shí)鐘頻率指的是RS 232 串行驅(qū)動(dòng)時(shí)鐘運(yùn)行的參數(shù),表達(dá)式為:
式中:fa表示RS 232 串行驅(qū)動(dòng)時(shí)鐘頻率;fb表示標(biāo)準(zhǔn)波特率時(shí)鐘頻率;M表示fa與fb之間的倍數(shù);βo表示輔助運(yùn)算參數(shù),取值范圍為[0,1 ]。
分頻系數(shù)是調(diào)整通信雙方時(shí)鐘頻率的關(guān)鍵參量,計(jì)算公式為:
式中:ξ表示分頻系數(shù);fc表示設(shè)計(jì)接口時(shí)鐘頻率數(shù)值。
依據(jù)公式(2)的計(jì)算結(jié)果對通信雙方時(shí)鐘頻率進(jìn)行合理調(diào)整,使兩者保持一致,保障RS 232 數(shù)據(jù)接收的質(zhì)量。
I2C 接收模塊主要對開始、應(yīng)答與結(jié)束三種類型信號進(jìn)行傳送與接收[9]。I2C 數(shù)據(jù)傳輸時(shí)序如圖4 所示。
圖4 I2C 數(shù)據(jù)傳輸時(shí)序示意圖
如圖4 所示,當(dāng)SCL 邏輯為1 時(shí),SDA 邏輯由1 變?yōu)?,起始信號變得有效,數(shù)據(jù)傳輸開啟;當(dāng)SCL 邏輯為0時(shí),SDA 邏輯由0 變?yōu)?,停止信號變得有效,數(shù)據(jù)傳輸結(jié)束。需要注意的是,數(shù)據(jù)發(fā)送過程中,應(yīng)該在SCL 變成高應(yīng)答位之前就準(zhǔn)備好數(shù)據(jù)[10]。
SPI 接收模塊整體呈現(xiàn)為一個(gè)環(huán)形結(jié)構(gòu),內(nèi)部包括兩個(gè)雙向移位寄存器,通過時(shí)鐘脈沖SCLK 對數(shù)據(jù)交換進(jìn)行控制[11]。由于研究篇幅的限制,不對SPI 接收模塊結(jié)構(gòu)進(jìn)行過多的贅述與展示。
上述過程完成了接口的具體設(shè)計(jì),為接口多種性能的穩(wěn)定發(fā)揮提供支撐[12]。
接口協(xié)議層設(shè)計(jì)的優(yōu)劣直接決定著設(shè)計(jì)接口的功能能否正常應(yīng)用,其關(guān)鍵環(huán)節(jié)為數(shù)據(jù)接收前端處理,主要功能為CRC 校驗(yàn)、NRZI 解碼與去除位填充,具體流程如下:
步驟1:設(shè)置接口輸入數(shù)據(jù)格式為data_in(13:0),采用CRC 校驗(yàn)?zāi)K對輸入數(shù)據(jù)進(jìn)行整體校驗(yàn)。若檢驗(yàn)結(jié)果為錯(cuò)誤,表明輸入數(shù)據(jù)錯(cuò)誤,此時(shí)將finish 設(shè)置為低電平,提示信息error 設(shè)置為高電平,并將提示信息error反饋給發(fā)送端;反之,若檢驗(yàn)結(jié)果為正確,表明輸入數(shù)據(jù)無錯(cuò)誤,此時(shí)將finish 設(shè)置為高電平,提示信息error 設(shè)置為低電平,轉(zhuǎn)至步驟2。
步驟2:對CRC 校驗(yàn)結(jié)果正確的輸入數(shù)據(jù)進(jìn)行校驗(yàn)碼(五位)去除處理,剩余數(shù)據(jù)記為rdata(8:0),將其傳輸給NRZI 解碼模塊。
步驟3:NRZI 解碼模塊對rdata(8:0)進(jìn)行相應(yīng)的解碼作業(yè),獲取輸入數(shù)據(jù),記為new[rdata(8:0)]。
步驟4:在去除位填充模塊中讀入new[rdata(8:0)],將去除的校驗(yàn)碼(五位)補(bǔ)充回來,即可獲得數(shù)據(jù)接收前端處理最終結(jié)果data_out。
綜上所述,應(yīng)用EDA 技術(shù)實(shí)現(xiàn)了常用串口通信總線接口的邏輯設(shè)計(jì),改善了接口整體性能,為多種設(shè)備通信提供了有效的幫助[13]。
選取基于高速串行總線的分布式RS 485 串口通信接口設(shè)計(jì)[14]與基于FPGA 和DSP 的GNSS 總線通信接口設(shè)計(jì)[15]作為對比接口1 與接口2,設(shè)計(jì)常用串口通信總線接口性能對比測試,以此來驗(yàn)證設(shè)計(jì)接口的整體性能。
為了保障實(shí)驗(yàn)的順利進(jìn)行,選取科學(xué)的、適當(dāng)?shù)脑O(shè)計(jì)工具,并對其進(jìn)行統(tǒng)一配置,提升實(shí)驗(yàn)結(jié)論的精確性。依據(jù)常用串口通信總線接口性能測試需求,選取MAX+PLUSⅡ軟件作為設(shè)計(jì)工具,具備功能全面、操作便利等優(yōu)勢,是現(xiàn)今應(yīng)用較為廣泛的大眾化EDA 平臺。MAX+PLUSⅡ軟件優(yōu)勢如下:
1)具備集成化界面,提供了設(shè)計(jì)輸入、處理、校驗(yàn)等開發(fā)工具,并能夠?qū)ζ溥M(jìn)行動(dòng)態(tài)調(diào)試,最大限度地縮短接口設(shè)計(jì)與開發(fā)的時(shí)間。
2)支持多種HDL 語言,例如AHDL、VHDL 等。
3)具備較強(qiáng)的數(shù)據(jù)互換性與開放性,能夠與其他工具進(jìn)行直接鏈接,再加之參數(shù)化模塊庫的提供,可以從多個(gè)角度幫助用戶去進(jìn)行邏輯設(shè)計(jì),簡化接口邏輯設(shè)計(jì)過程。
4)具備模塊組合式設(shè)計(jì)工具,并能夠根據(jù)用戶需求對設(shè)計(jì)工具位置等進(jìn)行調(diào)換,使設(shè)計(jì)環(huán)境更加用戶化,為用戶提供最佳的服務(wù)體驗(yàn)。
在MAX+PLUSⅡ軟件應(yīng)用環(huán)境下,可以直接對實(shí)現(xiàn)器件——FPGA 控制器進(jìn)行串行配置,具體如圖5 所示。
圖5 FPGA 控制器串行配置示意圖
另外,根據(jù)設(shè)計(jì)接口的實(shí)際需求,選取適當(dāng)?shù)膶?shí)現(xiàn)器件——FPGA 控制器,其相關(guān)參數(shù)為:
等效邏輯單元:2160;系統(tǒng)門:100 KB;分布式RAM:15 Kbits;最大I/O:108;最大差分對數(shù):40;CLBS:240;DCMS:2;Block RAM:72 Kbits。
上述過程完成了設(shè)計(jì)工具的選取與配置,為后續(xù)實(shí)驗(yàn)的順利進(jìn)行提供便利。
2.2.1 接口邏輯設(shè)計(jì)資源占用率測試結(jié)果分析
接口邏輯設(shè)計(jì)資源占用率可以側(cè)面反映接口的經(jīng)濟(jì)成本情況。常規(guī)情況下,接口邏輯設(shè)計(jì)資源占用率越高,表明其設(shè)計(jì)經(jīng)濟(jì)成本越高;反之,接口邏輯設(shè)計(jì)資源占用率越低,表明其設(shè)計(jì)經(jīng)濟(jì)成本越低。接口邏輯設(shè)計(jì)資源占用率計(jì)算公式為:
式中:K表示接口邏輯設(shè)計(jì)資源占用率;Qs表示接口邏輯設(shè)計(jì)應(yīng)用資源數(shù)量;Qtotal表示通信總線全部資源數(shù)量。
通過實(shí)驗(yàn)獲得接口邏輯設(shè)計(jì)資源占用率如表1所示。
表1 接口邏輯設(shè)計(jì)資源占用率 %
如表1 數(shù)據(jù)所示,在不同實(shí)驗(yàn)工況背景下:設(shè)計(jì)接口資源占用率數(shù)值范圍為19.58%~30.12%;對比接口1資源占用率數(shù)值范圍為36.59%~58.46%;對比接口2 資源占用率數(shù)值范圍為35.46%~62.15%。通過數(shù)據(jù)對比可知,設(shè)計(jì)接口資源占用率更低,表明其設(shè)計(jì)經(jīng)濟(jì)成本更低。
2.2.2 接口傳輸速率測試結(jié)果分析
接口傳輸速率是體現(xiàn)接口性能的關(guān)鍵指標(biāo)之一,其與接口性能之間呈現(xiàn)著明顯的正比例關(guān)系。通過實(shí)驗(yàn)獲得接口傳輸速率數(shù)據(jù),具體如圖6 所示。
圖6 接口傳輸速率示意圖
由圖6 可知:設(shè)計(jì)接口在第5 種實(shí)驗(yàn)工況背景下獲得傳輸速率最大值48 Mb/s;在第2 種與第6 種實(shí)驗(yàn)工況背景下獲得傳輸速率最小值30 Mb/s。通過線段高低位置可知,在不同實(shí)驗(yàn)工況背景下,設(shè)計(jì)接口傳輸速率均高于對比接口1 與接口2,表明設(shè)計(jì)接口傳輸性能更佳。
上述實(shí)驗(yàn)數(shù)據(jù)顯示:相較于兩種對比接口來看,設(shè)計(jì)接口資源占用率更低、傳輸速率更高,并且達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),證實(shí)了設(shè)計(jì)接口的可行性。
伴隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與普及,遠(yuǎn)距離數(shù)據(jù)傳輸需求急劇暴增,串口通信總線應(yīng)運(yùn)而生。通過調(diào)查研究發(fā)現(xiàn),制約串口通信總線應(yīng)用與發(fā)展的根本原因?yàn)榻涌谛阅埽时疚奶岢龌贓DA 技術(shù)的常用串口通信總線接口邏輯設(shè)計(jì)。設(shè)計(jì)接口大幅度地降低了資源占用率,提升了傳輸速率,能夠?yàn)榇谕ㄐ趴偩€應(yīng)用提供更有力的支撐,也為接口設(shè)計(jì)相關(guān)研究提供一定的借鑒。