關(guān)俊強(qiáng),左麗麗,吳維林,祝周榮
(上海航天技術(shù)研究院 上海航天電子技術(shù)研究所,上海 201109)
?
基于FPGA和CAN控制器軟核的CAN總線發(fā)送系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
關(guān)俊強(qiáng),左麗麗,吳維林,祝周榮
(上海航天技術(shù)研究院 上海航天電子技術(shù)研究所,上海 201109)
基于FPGA嵌入式片上系統(tǒng)可編程技術(shù),采用現(xiàn)有的CAN總線控制器軟核模塊,設(shè)計(jì)了軟核控制程序,將由CAN控制器軟核及其控制程序組成的CAN發(fā)送軟件嵌入在FPGA內(nèi)部,開發(fā)了CAN總線通信系統(tǒng),實(shí)現(xiàn)了對(duì)CAN總線數(shù)字量的發(fā)送;經(jīng)過軟件仿真驗(yàn)證、靜態(tài)時(shí)序分析和硬件系統(tǒng)測試,仿真和測試結(jié)果表明,該系統(tǒng)設(shè)計(jì)合理,方案可行,時(shí)序正確,功能、性能滿足要求;系統(tǒng)將硬件軟件化,有效的減少了外圍芯片的數(shù)量,降低了系統(tǒng)的體積和功耗,提高了產(chǎn)品的集成度、通用性和可靠性,具有良好的實(shí)用價(jià)值和推廣前景。
FPGA;CAN總線;CAN控制器;軟核
CAN總線是一種適用于分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。由于采用了非破壞性總線仲裁技術(shù)等許多新技術(shù)及其獨(dú)特的設(shè)計(jì),CAN總線與一般的通信總線相比,性價(jià)比高、容錯(cuò)能力強(qiáng)、通信速率高,數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。CAN的上述優(yōu)點(diǎn)使其目前應(yīng)用范圍不再局限于汽車工業(yè),而拓展到了航天電子、機(jī)械工業(yè)、紡織機(jī)械等領(lǐng)域,而且已經(jīng)形成國際標(biāo)準(zhǔn),是目前為止唯一有國際標(biāo)準(zhǔn)的現(xiàn)場總線,是公認(rèn)的幾種最有前途的現(xiàn)場總線之一[1]。
傳統(tǒng)的CAN總線通信系統(tǒng)如文獻(xiàn)[2]、文獻(xiàn)[3]介紹的一般由單片機(jī)和CAN控制器SJA1000芯片以及收發(fā)器PCA82C250/251芯片組成,但是單片機(jī)速率較低,資源少,遇到強(qiáng)電磁干擾程序很容易跑飛,這種現(xiàn)象在航天控制領(lǐng)域表現(xiàn)得非常突出[4]。文獻(xiàn)[4]、文獻(xiàn)[5]提出了由FPGA、CAN控制器SJA1000芯片以及收發(fā)器PCA82C250組成的CAN通信系統(tǒng)。上述這些方案雖然技術(shù)成熟,性能可靠,但外圍芯片較多,集成度不高,通用性不好,需要占用較多的印制板空間,很難適用于對(duì)電路體積和功耗要求苛刻的場合,因此,研究開發(fā)一種體積較小,功耗較低、集成度較高,適用于小型化應(yīng)用的CAN總線通信系統(tǒng)是十分必要的。
鑒于目前基于FPGA嵌入IP核的片上可編程系統(tǒng)得到了廣泛應(yīng)用,本系統(tǒng)選用高密度ACTEL FPGA芯片,采用現(xiàn)有的CAN控制器軟核模塊,自行設(shè)計(jì)開發(fā)了軟核發(fā)送控制程序,將軟核及其控制程序組成CAN總線發(fā)送程序,嵌入在FPGA芯片內(nèi)部,組成了CAN總線通信系統(tǒng)。硬件上主要采用一塊FPGA芯片,配合一片CAN接口芯片即可實(shí)現(xiàn)CAN總線數(shù)據(jù)的通信。該電路有效的減少了外圍芯片的數(shù)量,降低了產(chǎn)品的體積、重量、功耗和復(fù)雜度,提高了產(chǎn)品的集成度、可靠性和通用性,特別適用于需要小型化設(shè)計(jì)的數(shù)字量采集系統(tǒng)。
FPGA芯片具有集成度高、功耗低、重量輕的優(yōu)點(diǎn),因此,本文設(shè)計(jì)的CAN總線發(fā)送系統(tǒng)硬件上主要由一塊FPGA芯片作為核心控制單元,外加一片外圍CAN接口芯片組成,CAN發(fā)送控制軟件采用Verilog硬件描述語言編寫,和受其控制的采用VHDL語言編程的CAN控制器軟核一起,嵌入FPGA芯片內(nèi)部,配合實(shí)現(xiàn)系統(tǒng)功能。選用外部晶振提供系統(tǒng)時(shí)鐘,頻率為16 MHz。
圖1 CAN總線通信系統(tǒng)結(jié)構(gòu)框圖
FPGA芯片選用ACTEL公司的FLASH型A3P250-VQ100芯片,該芯片屬于ProASIC3 FLASH工藝系列FPGA,具有成本低、體積小(14 mm×14 mm)、功耗低、安全性好、可反復(fù)編程、無需額外片外配置PROM、獨(dú)立工作、無上電浪涌電流、加載直接啟動(dòng)和抗單粒子翻轉(zhuǎn)性能好的優(yōu)點(diǎn)。芯片資源為,具有25萬門、6144個(gè)D觸發(fā)器、36Kbits RAM、157個(gè)用戶IO口、350 MHz的系統(tǒng)性能;支持高級(jí)IO接口,靜態(tài)工作電流小于30 mA[6]。
CAN接口芯片選用SN65HVD233,該芯片是TI公司生產(chǎn)的CAN總線收發(fā)器芯片,電源電壓3.3 V,最高數(shù)據(jù)傳輸速率為1 Mbps,是CAN控制器與物理總線之間的接口,對(duì)物理總線傳輸電路提供差分收發(fā)能力,同時(shí)它可以用來隔離進(jìn)行和增強(qiáng)驅(qū)動(dòng)能力,提高系統(tǒng)的可靠性[7]。
CAN總線發(fā)送程序由CAN控制器軟核及其發(fā)送控制程序組成,用于控制CAN控制器軟核向總線上發(fā)送FPGA需要發(fā)送的數(shù)據(jù)。
2.1 CAN控制器軟核概述
CAN總線通信系統(tǒng)的核心是CAN控制器,實(shí)現(xiàn)了CAN總線物理層和數(shù)據(jù)鏈路層的所有功能,用于完成CAN總線的通信和網(wǎng)絡(luò)協(xié)議。
本文采用的已購買的CAN控制器軟核,是一種執(zhí)行CAN通信協(xié)議的串行通信控制器,支持CAN 2.0 B規(guī)范(標(biāo)準(zhǔn)幀、擴(kuò)展幀和遠(yuǎn)程幀),采用VHDL語言自頂向下模塊化設(shè)計(jì),便于不同應(yīng)用時(shí)對(duì)軟核進(jìn)行裁剪。SJA1000軟核包括接口管理邏輯、位時(shí)序邏輯、位流處理器、錯(cuò)誤管理邏輯、傳輸邏輯、發(fā)送緩沖器、接收緩沖器和驗(yàn)收濾波器等功能模塊,最高可編程數(shù)據(jù)傳輸速率可達(dá)1 Mbps,8位數(shù)據(jù)線主機(jī)接口,完全可綜合,占用邏輯資源較少[8]。
軟核主要接口信號(hào)包括時(shí)鐘clk、異步復(fù)位信號(hào)rst_b、輸入數(shù)據(jù)信號(hào)datain[7:0]、輸出數(shù)據(jù)信號(hào)dataout[7:0]、地址adr[5:0]、片選信號(hào)cs_b、讀信號(hào)rd_b、寫信號(hào)wr_b、中斷信號(hào)int、接收信號(hào)rxd、發(fā)送信號(hào)txd等。相對(duì)于FPGA可以看做一個(gè)存儲(chǔ)器外設(shè),F(xiàn)PGA可以通過訪問CAN 軟核控制器來實(shí)現(xiàn)對(duì)CAN通信網(wǎng)絡(luò)上數(shù)據(jù)的發(fā)送和接收。
該CAN控制器軟核跟常用的SJA1000控制器芯片工作原理和流程完全相同,只是寄存器地址分配和定義不同,寄存器地址和定義可參見用戶手冊(cè)[8],本文設(shè)計(jì)的控制程序經(jīng)過適應(yīng)性修改可用于SJA1000軟核的控制程序設(shè)計(jì)。
根據(jù)軟核用戶手冊(cè)[8],寫操作和讀操作時(shí)序要求分別如下圖2和圖3所示。
圖2 CAN控制器軟核寫操作時(shí)序要求示意圖
圖3 CAN控制器軟核讀操作時(shí)序要求示意圖
2.2 CAN總線發(fā)送控制軟件設(shè)計(jì)
根據(jù)軟核用戶手冊(cè)要求,設(shè)計(jì)CAN 總線發(fā)送控制軟件對(duì)該軟核進(jìn)行初始化配置,設(shè)置工作模式,控制節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù)。
2.2.1 軟件設(shè)計(jì)與實(shí)現(xiàn)
本文設(shè)計(jì)的軟件采用Verilog語言編程,采用一個(gè)“三段式”狀態(tài)機(jī)實(shí)現(xiàn)控制功能,一次發(fā)送流程包括查詢操作、寫發(fā)送緩沖器、發(fā)送命令操作,其中,查詢操作包括查詢中斷寄存器和查詢狀態(tài)寄存器。
狀態(tài)機(jī)工作流程圖如圖4所示。
圖4 CAN發(fā)送控制程序狀態(tài)機(jī)流程圖
1)硬件復(fù)位:
根據(jù)軟核用戶手冊(cè)要求,上電后需對(duì)軟核進(jìn)行異步復(fù)位,復(fù)位信號(hào)低電平有效。在FPGA軟件上電復(fù)位后,控制狀態(tài)機(jī)輸出一定寬度的低電平復(fù)位信號(hào)rst_b_t;
2)初始化:
硬件復(fù)位完成后,需對(duì)CAN 控制器軟核進(jìn)行初始化,配置軟核工作模式。根據(jù)IP軟核用戶手冊(cè)中寄存器地址和定義要求,需先后對(duì)11個(gè)功能寄存器進(jìn)行配置。
軟件借用ROM的思想,將寄存器地址和數(shù)據(jù)統(tǒng)一編碼,存儲(chǔ)在ROM中,按照一定的順序依次輸出。
先向控制寄存器(地址為6’h20)寫入數(shù)據(jù)8’hF8,以使CAN控制器進(jìn)入軟件復(fù)位模式,可以進(jìn)行工作模式配置;然后對(duì)驗(yàn)收代碼寄存器(地址為6’h24、6’h25、6’h26)均寫入數(shù)據(jù)8’h00,對(duì)驗(yàn)收屏蔽寄存器(地址為6’h27、6’h28、6’h29)均寫入數(shù)據(jù)8’h11,對(duì)附加寄存器(地址為6’h2B)寫入數(shù)據(jù)8’h47,以配置驗(yàn)收濾波寄存器對(duì)接收數(shù)據(jù)標(biāo)識(shí)符不進(jìn)行校驗(yàn),設(shè)置同步跳轉(zhuǎn)寬度為2;對(duì)位定時(shí)寄存器(地址為6’h2A)寫入數(shù)據(jù)8’hB4,設(shè)置采樣點(diǎn)位置為80%;由于本文時(shí)鐘頻率為16 MHz,對(duì)時(shí)鐘分頻寄存器(地址為6’h2C)寫入數(shù)據(jù)8’h01,配置總線波特率為500 Kbps;最后,對(duì)控制寄存器(地址為6’h20)寫入數(shù)據(jù)8’h78,退出復(fù)位模式,進(jìn)入工作模式。
軟件初始化過程前仿真波形圖如圖5所示。
圖5 初始化過程前仿真波形圖
3)寫發(fā)送緩沖器:
本文采用標(biāo)準(zhǔn)幀模式,發(fā)送緩存器地址為6’h10~6’h19,其中6’h10、6’h11為節(jié)點(diǎn)幀ID標(biāo)識(shí)符地址;6’h12~6’h19為發(fā)送數(shù)據(jù)地址,共8字節(jié)。寫發(fā)送緩沖器過程前仿真波形圖如圖6所示。
4)發(fā)送操作:
對(duì)命令寄存器地址6’h21寫入數(shù)據(jù)8’h40,啟動(dòng)按照標(biāo)準(zhǔn)幀格式發(fā)送數(shù)據(jù)。
前仿真波形圖如圖6所示。
5)查詢操作:
(1)查詢中斷寄存器:
發(fā)送完畢后,不斷查詢中斷寄存器,進(jìn)行相應(yīng)的操作。
中斷寄存器地址為6’h23,當(dāng)讀到該地址數(shù)據(jù)的第4bit為1時(shí),表示總線發(fā)生錯(cuò)誤,轉(zhuǎn)入硬件復(fù)位流程進(jìn)行復(fù)位操作,使軟件重新開始工作。當(dāng)讀到數(shù)據(jù)的第2bit為1時(shí),表示數(shù)據(jù)已經(jīng)成功發(fā)送完畢,狀態(tài)機(jī)轉(zhuǎn)入查詢狀態(tài)寄存器狀態(tài);否則,繼續(xù)查詢中斷寄存器。
(2)查詢狀態(tài)寄存器:
狀態(tài)寄存器地址為6’h22,讀取該地址數(shù)據(jù),如果第4bit為0,表示上一次發(fā)送尚未完成或者還沒有開始發(fā)送,如果第5bit為0,表示發(fā)送緩沖器已滿,鎖定不可用,如果第6bit為1,表示接收緩沖器已滿,這3種情況下均不能發(fā)送數(shù)據(jù),狀態(tài)機(jī)繼續(xù)查詢狀態(tài)寄存器。
如果讀取數(shù)據(jù)第4bit為1,表示上一次寫入發(fā)送緩沖器的數(shù)據(jù)已經(jīng)成功發(fā)送,第5bit為1,表示發(fā)送緩沖器可以使用,第6bit為0,表示接收緩沖器為空,這3種條件都滿足時(shí),可以發(fā)送數(shù)據(jù),狀態(tài)機(jī)轉(zhuǎn)入步驟3)寫發(fā)送緩沖器狀態(tài)進(jìn)行下一次發(fā)送操作。
查詢操作前仿真波形圖如圖6所示,中斷寄存器數(shù)據(jù)為8’h04,表明沒有發(fā)生總線錯(cuò)誤,發(fā)送請(qǐng)求已經(jīng)被成功完成,狀態(tài)寄存器數(shù)據(jù)為8’h30,表明上一幀寫入發(fā)送緩沖器的數(shù)據(jù)已被成功發(fā)送,發(fā)送緩沖器可以使用,而且接收緩沖器為空,狀態(tài)機(jī)可以轉(zhuǎn)入寫發(fā)送緩沖器狀態(tài)。
圖6 3)、4)、5)各流程前仿真波形圖
6)讀寫操作:
在上述流程2)、3)、4)對(duì)寄存器或者發(fā)送緩沖器進(jìn)行寫操作時(shí),狀態(tài)機(jī)均需要轉(zhuǎn)入寫流程,對(duì)軟核輸出片選信號(hào)cs_b、和寫信號(hào)wr_b,配合各流程輸出地址adr[5:0]和數(shù)據(jù)datain[7:0]進(jìn)行相應(yīng)的寫操作。
在上述流程5)對(duì)寄存器進(jìn)行讀操作時(shí),狀態(tài)機(jī)需要轉(zhuǎn)入讀流程,對(duì)軟核輸出片選信號(hào)cs_b、讀信號(hào)rd_b,配合各流程輸出地址adr[5:0]進(jìn)行相應(yīng)的讀操作,從軟核dataout[7:0]讀出數(shù)據(jù)。
寫操作、讀操作仿真時(shí)序圖分別如圖7、圖8所示,讀周期和寫周期最小值均為375 ns,寫操作時(shí),地址和數(shù)據(jù)的建立時(shí)間和保持時(shí)間均為187.5 ns。
圖7 寫操作前仿真波形圖
圖8 讀操作前仿真波形圖
2.2.2 可靠性、安全性設(shè)計(jì)
1)進(jìn)行降額設(shè)計(jì),對(duì)FGPA內(nèi)部邏輯資源占用率不超過80%,最大時(shí)鐘速率降額80%;
2)FPGA設(shè)計(jì)時(shí)編程語言和風(fēng)格應(yīng)符合相關(guān)設(shè)計(jì)規(guī)范的要求;
3)對(duì)需要采用分頻時(shí)鐘的模塊,采用系統(tǒng)時(shí)鐘和時(shí)鐘使能實(shí)現(xiàn)同步電路,提高時(shí)序性能;
4)狀態(tài)機(jī)編碼采用Gray碼,綜合時(shí)采用安全模式,防止?fàn)顟B(tài)機(jī)跳轉(zhuǎn)到非法狀態(tài)而發(fā)生狀態(tài)機(jī)死鎖。
5)軟件只使用系統(tǒng)時(shí)鐘上升沿,提高時(shí)序性能。
2.3 軟件仿真驗(yàn)證
將CAN總線發(fā)送軟件作為DUT,編寫測試床(testbench),采用VCS 2011仿真工具進(jìn)行功能仿真和時(shí)序仿真,驗(yàn)證軟件功能。
編寫了一個(gè)由2個(gè)節(jié)點(diǎn)組成的CAN總線通信系統(tǒng)仿真測試環(huán)境,包括節(jié)點(diǎn)1、節(jié)點(diǎn)2和CAN總線兩節(jié)點(diǎn)連接模型Bus2,testbench組成框圖如圖9所示。
由DUT作為節(jié)點(diǎn)1負(fù)責(zé)發(fā)送數(shù)據(jù),testbench中的接收軟件作為節(jié)點(diǎn)2負(fù)責(zé)接收數(shù)據(jù),接收軟件包括接收控制軟件和CAN控制器軟核。
圖9 仿真激勵(lì)模型組成框圖
將節(jié)點(diǎn)2和DUT中的CAN控制器軟核按照同樣的方式進(jìn)行初始化,設(shè)置總線數(shù)據(jù)通信波特率為0.5 Mbps。向節(jié)點(diǎn)1發(fā)送緩沖器地址6’h10~6’h19依次寫入數(shù)據(jù)8’hA7、8’hE8、8’h11~8’h18,前兩個(gè)字節(jié)表示節(jié)點(diǎn)1的ID標(biāo)識(shí)符為11’h53F,8’h11~8’h18為8字節(jié)發(fā)送數(shù)據(jù)包,將數(shù)據(jù)寫入發(fā)送緩沖器,然后向命令寄存器6’h21寫入數(shù)據(jù)8’h40,啟動(dòng)發(fā)送,發(fā)送格式為標(biāo)準(zhǔn)幀。
CAN總線發(fā)送軟件各流程VCS前仿真時(shí)序波形圖見前文圖5~圖6所示。
在寫入發(fā)送命令17.7 us后,發(fā)送接口txd開始輸出發(fā)送數(shù)據(jù),239.7 us發(fā)送完畢,發(fā)送數(shù)據(jù)周期為2 us,波特率為0.5 Mbps,采樣點(diǎn)位置為80%,仿真波形圖見圖10所示。
圖10 txd發(fā)送數(shù)據(jù)波形圖
testbench中的節(jié)點(diǎn)2在初始化完成后,rxd_2接口上接收到總線數(shù)據(jù),在接收中斷有效后,節(jié)點(diǎn)2開始讀取接收緩沖器數(shù)據(jù),依次讀地址為6’h00~6’h09的接收緩沖器,讀到的第一幀數(shù)據(jù)為8’hA7、8’hF1、8’h11~8’h18,前2個(gè)字節(jié)表示ID標(biāo)識(shí)符為11’h53F,數(shù)據(jù)長度為8字節(jié),接收到的ID標(biāo)識(shí)符和數(shù)據(jù)均與發(fā)送節(jié)點(diǎn)1發(fā)送數(shù)據(jù)完全一致。節(jié)點(diǎn)2接收數(shù)據(jù)前仿真波形圖如圖11所示。
設(shè)置節(jié)點(diǎn)1繼續(xù)連續(xù)發(fā)送多幀數(shù)據(jù),節(jié)點(diǎn)2均能正常接收數(shù)據(jù),觀察節(jié)點(diǎn)1發(fā)送錯(cuò)誤計(jì)數(shù)器和節(jié)點(diǎn)2接收錯(cuò)誤計(jì)數(shù)器,均顯示數(shù)值為0,說明沒有發(fā)生發(fā)送和接收錯(cuò)誤,總線工作正常。
圖11 testbench節(jié)點(diǎn)2接收數(shù)據(jù)波形圖
由此可見,CAN總線發(fā)送軟件功能正確,能夠按照配置的工作模式,向總線正確發(fā)送數(shù)據(jù)。
2.4 靜態(tài)時(shí)序分析
軟件采用Designer布局布線后資源占用情況見圖12所示,邏輯資源占用率約為53%。采用SmartTime工具進(jìn)行靜態(tài)時(shí)序分析,分析結(jié)果見圖13所示,最大工況下,系統(tǒng)時(shí)鐘最高工作頻率約為33.5 MHz,本設(shè)計(jì)實(shí)際工作頻率為16 MHz。邏輯資源占用率和工作頻率均滿足降額80%要求。
在最大工況、典型工況和最小工況下,各條時(shí)序路徑建立時(shí)間和保持時(shí)間余量均為正值,滿足要求。
圖12 布局布線后資源使用情況圖
圖13 時(shí)序性能分析結(jié)果圖
2.5 實(shí)驗(yàn)結(jié)果分析
在Libero IDE v9.1開發(fā)環(huán)境下對(duì)CAN發(fā)送軟件進(jìn)行編譯,選擇ACTEL公司FLASH型ProASIC3系列A3P250-VQFP100-std芯片,采用Synplify Pro2010綜合生成網(wǎng)表文件,最后采用Designer生成pdb下載文件,燒入FPGA芯片,經(jīng)過系統(tǒng)硬件測試,在常溫和高低溫(符合芯片工作溫度范圍)情況下,F(xiàn)PGA均能夠按照設(shè)定的工作模式,向總線正常發(fā)送數(shù)據(jù),實(shí)現(xiàn)可靠的數(shù)據(jù)通信。
本文在分析比較幾種傳統(tǒng)CAN總線通信系統(tǒng)技術(shù)方案優(yōu)缺點(diǎn)的基礎(chǔ)上,基于FPGA嵌入式片上系統(tǒng)可編程技術(shù),采用現(xiàn)有的CAN控制器IP軟核模塊代替CAN控制器芯片,設(shè)計(jì)了采用verilog語言編寫的CAN總線發(fā)送控制軟件對(duì)CAN控制器軟核進(jìn)行控制,將軟核及其控制程序嵌入一塊高密度、小體積的ACTEL FPGA芯片,組成一種小型化、高集成度、高可靠性的CAN總線通信系統(tǒng),成功實(shí)現(xiàn)了對(duì)CAN總線數(shù)字量的正確發(fā)送。
通過對(duì)軟件的仿真驗(yàn)證、靜態(tài)時(shí)序分析,以及最后的系統(tǒng)硬件測試,仿真和測試結(jié)果表明,本文提出的技術(shù)方案設(shè)計(jì)合理、方案可行,設(shè)計(jì)的軟件時(shí)序性能良好、功能正確,系統(tǒng)具有較強(qiáng)的實(shí)用性、通用性和可靠性。跟傳統(tǒng)CAN通信系統(tǒng)相比,該系統(tǒng)極大的減少了外圍芯片的數(shù)量,降低了系統(tǒng)的體積、重量和功耗,提高了系統(tǒng)的集成度、通用性和可靠性,可用于實(shí)現(xiàn)需要小型化、通用化設(shè)計(jì)的CAN通信系統(tǒng)。
[1] 饒?jiān)茲?,鄒繼軍,等.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)(第2版)[M].北京:北京航空航天大學(xué)出版社,2007.
[2] 吳 坎.基于SJA1000和PCA82C250的CAN總線接口設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造,2010,17(7):57-58.
[3] 王毅峰,李令奇.SJA1000在數(shù)據(jù)采集與控制系統(tǒng)中的應(yīng)用[J].微計(jì)算機(jī)信息,2001,17(4):16-18.
[4] 陳 萍,姜秀杰.基于FPGA的CAN總線通信系統(tǒng)[J].計(jì)算機(jī)測量與控制,2009,17(12):16-18.
[5 ] 武星星,劉金國,周懷得,等.基于TSC695F和FPGA的CAN總線接口設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2012,20(11):3032-3034.
[6] Microsemi,Inc.ProASIC3 Flash Family FPGAs Datasheet[Z].2010:1-6.
[7] SN65HVD233 Datasheet[Z].Texas Instruments.
[8] CAN Controller Core User’s guide[EB/OL].http://www.cast-inc.com.
Design and Implementation of a CAN Data Transmission System Based on FPGA and CAN Controller Soft Core
Guan Junqiang, Zuo Lili, Wu Weilin, Zhu Zhourong
(Shanghai Institute of Aerospace Electronic Technology, Shanghai Academy of Spaceflight Technology,Shanghai 201109, China)
Based on FPGA embedded programmable technology,adopted an existing CAN Controller Soft Core, and designed a CAN Bus transmission software which consists of the Soft Core and its control software. The transmission software which is embedded in a FPGA chip, together with the FPGA, form a CAN bus transmission system, which can transmit digital signals to the CAN bus. Through simulation, static timing analysis and hardware system testing, the results indicate that the system design and scheme of this paper is reasonable, feasible, and the timing is correct and its functions and performance can meet the design requirements. Design of this paper implements the function with software instead of hardware, minimizes the use of peripheral chips, makes the system have small volume, low cost and power consumption, high integrity, reliability and generality, and these advantages that this system possesses make it have good practical value and application prospects.
FPGA; CAN bus; CAN controller; soft core
2015-12-17;
2016-01-27。
關(guān)俊強(qiáng)(1985-),男,山西忻州人,碩士,工程師,主要從事航天FPGA產(chǎn)品的設(shè)計(jì)和驗(yàn)證方向的研究。
1671-4598(2016)03-0281-04
10.16526/j.cnki.11-4762/tp.2016.03.077
TP336
A