許智勇 周煒
摘要:本文對FPGA和DSP下的數(shù)據(jù)通信方案設計,選擇CAN總線下通信系統(tǒng)設計,在設計目標上主要在于使CAN總線能夠?qū)崿F(xiàn)多節(jié)點可靠高速性傳輸,在節(jié)點之間的數(shù)據(jù)通信基礎上,使整個通信系統(tǒng)中不同單元都能夠?qū)崿F(xiàn)協(xié)同工作。通過該種設計,相對一般通信總線來說,CAN總線不僅可表現(xiàn)出突出的可靠性,還會表現(xiàn)出突出的實時性與靈活性,對于高速信號處理及傳輸方面的要求能夠得到基本滿足。
關(guān)鍵詞:FPGA;DSP;數(shù)據(jù)通信
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2018)04-0136-01
在FPGA、DSP等控制芯片快速發(fā)展的今天,人們在數(shù)據(jù)傳輸速度與穩(wěn)定性方面的要求不斷提升,通過FPGA和DSP配合對CAN總線進行控制,成為當前CAN總線通信系統(tǒng)研究重要課題。本文即從系統(tǒng)硬件設計與軟件設計兩方面,對FPGA和DSP下的CAN總線通信系統(tǒng)進行了設計。
1 FPGA和DSP下的數(shù)據(jù)通信系統(tǒng)硬件設計
1.1 對SJAl000模塊硬件進行設計
該模塊是一種具有獨立性的CAN總線控制器,能夠支持CAN2.0B協(xié)議。在這一系統(tǒng)中,對16Mhz外接晶振加以采用,從而確保系統(tǒng)時鐘的提供;在數(shù)據(jù)地址上,通過總線引腳DO-D7同DSP進行相連;芯片使能信號CS與地址鎖存信號ALE及寫有效WR和讀有效RDR同F(xiàn)PGA的I/O口相連;對于MODE引腳,將其接至高電平,確保其工作能夠在Intel時序;對于發(fā)送輸出端TX0,使其與CAN總線收發(fā)器PCA82C250的TXD相連,對于接收輸入端RX0,使其與RXD引腳相連;在RXl引腳上,將其接到一個固定電平,使其和CAN總線收發(fā)器PCA82C250在參考電平輸出引腳Vref上相連。
1.2 對PCA82C250模塊硬件進行設計
該模塊屬于在CAN總線控制器與物理總線兩者中間的接口,其性質(zhì)為CAN總線收發(fā)器。其不僅能夠向總線對差動發(fā)送能力進行提供,還能向CAN總線控制器對相應差動接收能力進行提供。其中RS引腳的應用,主要可對2種不同工作模式進行選擇,一種是高速工作模式,一種是斜率控制模式。該引腳可對47K電阻進行外接,讓芯片能夠處在斜率控制模式下工作。
1.3 對74LVC4245模塊硬件進行設計
因FPGA的I/O口在輸出電平方面屬于3.3VTTL標準信號,而SJAl000引腳在輸入輸出電平方面屬于5 VCOMS電平信號,使得其無法直接相連,數(shù)據(jù)也無法直接進行傳輸,需對電平轉(zhuǎn)換芯片74LVC4245加以使用,使標準信號和電平信號能夠進行轉(zhuǎn)換。因SJAlOOO的數(shù)據(jù)地址選用復用總線Do—D7,所以在一片74LVC4245上對Do—D7進行接入,并在另一片74LVC4245上對其他控制信號進行接入,從而為電平轉(zhuǎn)換方向控制提供方便。
2 FPGA和DSP下的數(shù)據(jù)通信系統(tǒng)軟件設計
2.1 對DSP模塊程序進行設計
在該系統(tǒng)中,對于數(shù)字信號處理芯片的選用,選擇了具有高性能的TMS320C67x系列,其由TI公司推出,在工作頻率方面能夠達到1 GHz,這種較強的數(shù)據(jù)處理能力,可以確保高速數(shù)據(jù)傳輸?shù)囊蟮玫交緷M足。[6]對于DSP來說,受其地址線與數(shù)據(jù)線是分開的影響,不能直接同DO-D7相連,因此將其地址線AO作為數(shù)據(jù)選擇線,在AO=0情況下,以DSP數(shù)據(jù)線上的數(shù)據(jù)為地址對SJAl000進行寫入,在A0=1情況下,以DSP數(shù)據(jù)線上的數(shù)據(jù)為數(shù)據(jù)對SJAl000進行寫入。
在該系統(tǒng)中,DSP模塊主要負責對SJAl000初始化過程的完成及對發(fā)送過程的控制。因SJAl000內(nèi)部大部分寄存器的讀寫必須處于復位模式,為此在對SJAl000實施初始化前,需對其處理使其處于復位模式。完成配置后,確保SJAl000重新進入正常操作模式,等待對數(shù)據(jù)進行發(fā)送或接收。對SJAl000進行發(fā)送時,需對狀態(tài)寄存器sR中的值進行讀取,主要為TCS和TBS位的值,保證在SJAl000最近一次發(fā)送上已經(jīng)獲得成功,同時需保證發(fā)送緩沖器處在釋放狀態(tài)。之后面向發(fā)送緩沖器TXB對TX標識碼進行寫入、對TX結(jié)構(gòu)信息進行寫入、對待發(fā)送的數(shù)據(jù)進行寫入;在最后,需面向命令寄存器CMR的TR位,對1進行寫入,對發(fā)送請求進行置位,對發(fā)送操作進行完成。
2.2 對FPGA模塊程序進行設計
該系統(tǒng)在芯片的選擇上,選擇了低功耗處理器,即EPlC6Q 240C8型芯片,其由Altera公司提供,可對185個I/0接口進行提供,在處理速度上較快,且具有靈活、可靠等優(yōu)勢。對于FPGA模塊來說,其主要負責對SJAl000地址鎖存信號ALE的時序控制,完成對芯片使能信號CS的時序控制,并完成對讀有效RD的時序控制,以及完成對寫有效WR的時序控制。
FPGA在完成這些時序控制的過程中,同時需完成在電平轉(zhuǎn)換芯片74LVC4245方面的控制,對其電平轉(zhuǎn)換方向信號trl加以控制。在DSP向SJAl000對數(shù)據(jù)進行寫入時,trl數(shù)值為0,對于3.3VTTL標準信號,會使其轉(zhuǎn)換成5VCOMS電平信號;在DSP向SJAl000對數(shù)據(jù)進行讀出時,trl數(shù)值為1,對于5VCOMS電平信號,會使其轉(zhuǎn)換成3.3VTTL標準信號。
3 結(jié)語
為了使CAN總線的能夠?qū)崿F(xiàn)多節(jié)點可靠高速性傳輸,本文基于FPGA和DSP對CAN總線通信系統(tǒng)進行了設計。FPGA和DSP下的CAN總線通信系統(tǒng)設計,在硬件部分對DSP+FPGA加以采用,將其作為核心通訊處理單元,在軟件部分對DSP模塊程序與FPGA模塊程序進行設計,具有很好的實時性,還能夠確保系統(tǒng)數(shù)據(jù)在傳輸過程中穩(wěn)定可靠。
參考文獻
[1]單彥虎,謝璐,楊玉華,等.基于DSP+FPGA的飛控系統(tǒng)硬件平臺設計[J].火力與指揮控制,2017,(11):169-173.
[2]侯翔昊,楊堯,王民鋼.基于DSP與FPGA多路ARINC429數(shù)據(jù)通信系統(tǒng)設計[J].電力電子技術(shù),2013,(8):107-108.