国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的PC/104-CAN通訊板設(shè)計

2010-05-13 09:17:24徐軍濤,許化龍
現(xiàn)代電子技術(shù) 2009年19期
關(guān)鍵詞:數(shù)據(jù)總線數(shù)據(jù)包嵌入式

徐軍濤,許化龍

摘 要:介紹基于FPGA的PC/104-CAN通訊板的設(shè)計與實現(xiàn)方案,采用SJA1000T作為CAN控制器,82C250作為CAN收發(fā)器,并在通信通道上采用光電隔離技術(shù),提高了系統(tǒng)可靠性。重點論述了應(yīng)用FPGA實現(xiàn)從PC/104總線到CAN總線的數(shù)據(jù)和地址信號傳輸,時序邏輯控制信號的轉(zhuǎn)換,以及驅(qū)動程序的設(shè)計和CAN多幀數(shù)據(jù)傳遞時打包和解包的方法,應(yīng)用一種簡單實用的CAN數(shù)據(jù)包格式,有效地簡化了數(shù)據(jù)通訊并提高了總線的有效傳輸速率。

關(guān)鍵詞:PC/104;CAN;FPGA;打包;解包

中圖分類號:TP366文獻(xiàn)標(biāo)識碼:A

文章編號:1004-373X(2009)19-083-03

Design of PC/104-CAN Communication Board Based on FPGA

XU Juntao,XU Hualong

(The Second Artillery Engineering Institute,Xi′an,710025,China)

Abstract:The design and implementation of PC/104-CAN communication board based on FPGA are introduced.It adopts SJAl000T as the CAN controller,and 82C250 as the CAN transceiver.At the same time,photoelectric isolation technology is adopted on the channels to increase dependability of the system.The transformation of data and address signal and sequential control signal from PC/104 to CAN bus is discussed,and the design of drive and a method of CAN bus data packing and unpacking is mentioned.Using a kind of CAN data format,the data communication is simplified efficiently,and the effective transformation speed is increased.

Keywords:PC/104;CAN;FPGA;packing;unpacking

0 引 言

PC/104 嵌入式控制PC出現(xiàn)于20世紀(jì)80年代末,并于1992年形成IEEEP966.1標(biāo)準(zhǔn)。它一方面繼承了PC的所有資源,另一方面又對PC的各個方面做了優(yōu)化設(shè)計,使其與IBM PC完全兼容,并具有體積小,功耗低,工作溫度寬,可靠性高等特點[1]。采用了獨特的“自棧式”總線連接、模塊化結(jié)構(gòu),使用起來靈活方便;采用面向?qū)ο蟮挠布O(shè)計方法,使得在PC/104 標(biāo)準(zhǔn)上開發(fā)的擴(kuò)展模塊具有更強(qiáng)的通用性和更長的生命期;它以其優(yōu)良的品質(zhì)、高可靠性及模塊化,廣泛應(yīng)用于工業(yè)控制、航空航天、軍事、醫(yī)療、消防設(shè)備、智能儀器儀表、導(dǎo)航、通訊、數(shù)控、自動化生產(chǎn)設(shè)備、便攜式計算機(jī)等領(lǐng)域。

CAN(Controller Area Network)總線是一種有效支持分布控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),采用多主協(xié)議,廢除了傳統(tǒng)的站地址編碼,而采用對通信數(shù)據(jù)塊進(jìn)行編碼的方法,使網(wǎng)絡(luò)內(nèi)節(jié)點個數(shù)在理論上不受限制。它具有總線仲裁、錯誤檢測、自動重發(fā)等功能。由于采用了許多新技術(shù)及獨特的設(shè)計,CAN總線具有高實時性、卓越性能、高可靠性、能獨特靈活設(shè)計和低廉價格,已廣泛應(yīng)用于工業(yè)現(xiàn)場、控制、智能大廈、小區(qū)安防、交通工具、醫(yī)療儀器、環(huán)境監(jiān)控等眾多領(lǐng)域。目前,它已被公認(rèn)為是幾種最有前途的現(xiàn)場總線之一[2]。

隨著科技的發(fā)展,同一系統(tǒng)應(yīng)用多種總線技術(shù)已經(jīng)成為一種趨勢。本設(shè)計利用FPGA完成PC/104總線和CAN總線之間的相互通訊,將兩總線相結(jié)合,優(yōu)勢互補(bǔ),使兩總線有更大應(yīng)用價值和更廣闊的使用前景[3]。

1 硬件設(shè)計

1.1 系統(tǒng)硬件結(jié)構(gòu)

本設(shè)計采用PC/104模板形式,具有很強(qiáng)的方便性和可擴(kuò)展性,其系統(tǒng)的硬件結(jié)構(gòu)如圖1 所示。

由于PC/104總線采用的是地址數(shù)據(jù)總線分離的總線結(jié)構(gòu),而CAN總線協(xié)議控制器SJA1000T采用的是地址數(shù)據(jù)總線分時復(fù)用的總線結(jié)構(gòu),因此系統(tǒng)使用FPGA器件 EP20K100實現(xiàn)總線轉(zhuǎn)換和時序邏輯控制轉(zhuǎn)換。該通訊板采用I/O映射方式,其內(nèi)部寄存器地址為280H~2BFH。為了增強(qiáng)系統(tǒng)的抗干擾能力,在控制器SJA1000T與收發(fā)器82C250之間接入光電耦合器6N137。光耦6N137的上升時間典型值為30 ns,隔離電壓為3 000 V,其支持最大頻率值超過30 MHz。

圖1 系統(tǒng)硬件結(jié)構(gòu)圖

1.2 FPGA設(shè)計

Quartus Ⅱ是Altera公司在21世紀(jì)初推出的FPGA/CPLD開發(fā)環(huán)境,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+Plus Ⅱ的更新?lián)Q代產(chǎn)品,其功能強(qiáng)大,界面友好,使用便捷。Quartus Ⅱ軟件集成了Altera的FPGA/CPLD開發(fā)流程中所涉及的所有工具和第三方軟件接口[4]。Quartus Ⅱ軟件的開發(fā)流程如圖2所示。

圖2 Quartus Ⅱ軟件的開發(fā)流程

采用原理圖輸人和硬件描述語言相結(jié)合的方式,進(jìn)行編譯后寫入器件中[5];同時可在線更改寫入內(nèi)容,修改和調(diào)試簡單易行。FPGA的設(shè)計主要由兩部分組成:第一部分實現(xiàn)時序邏輯控制信號的轉(zhuǎn)換,第二部分實現(xiàn)地址譯碼和地址數(shù)據(jù)線的復(fù)用。Quartus Ⅱ圖表文件及器件管腳如圖3所示。

圖3 Quartus Ⅱ圖表文件及器件管腳圖

由于PC/104的地址總線和數(shù)據(jù)總線是各自獨立的,SJA1000T的地址總線和數(shù)據(jù)總線是分時復(fù)用的,所以它們之間不能直接相連,必須通過時序邏輯控制,再配合軟件來實現(xiàn)讀/寫操作。對SJA1000T的操作方法是:首先,對地址為CAN首地址+0(A2A1A0=000)的端口進(jìn)行寫操作(WR為低,有效),CANALE為高,有效,此時復(fù)用的地址、數(shù)據(jù)總線上的數(shù)據(jù)被視為地址信號,進(jìn)入SJA1000T內(nèi)部鎖存器;然后,對地址為CAN首地址+1(A2A1A0=001)的端口進(jìn)行讀或?qū)懖僮?RD/WR為低,有效),CANALE為低,上述中的地址信號已被鎖存,此時復(fù)用的地址、數(shù)據(jù)總線上的數(shù)據(jù)被視為數(shù)據(jù)信號,這樣即可完成對SJA1000T的各個寄存器和緩沖區(qū)的讀或?qū)懖僮鱗6]。

1.3 硬件電路測試

主要檢測硬件結(jié)構(gòu)及電路板設(shè)計是否正確。建立一個簡單的通訊連接,將兩個通訊板連接進(jìn)行測試,用通訊板A作為輸出,通訊板B作為輸入。編程通過通訊板A發(fā)送數(shù)據(jù),內(nèi)容為8個隨機(jī)數(shù),檢測通訊板B接收數(shù)據(jù),如果不同則作加1計數(shù)。反之將通訊板B作為輸出,通訊板A作為輸入,進(jìn)行相同測試。測試200萬次循環(huán)未見異常。

2 軟件設(shè)計

2.1 軟件流程圖

在該通訊板的設(shè)計中,控制部分的核心采用了PC/104嵌入式計算機(jī)系統(tǒng)。由于PC/104嵌入式計算機(jī)系統(tǒng)幾乎具有和一般的PC機(jī)一樣的強(qiáng)大功能,所以該通訊板的開發(fā)是在和系統(tǒng)模塊棧接在一起后,直接在嵌入式計算機(jī)上進(jìn)行的。這些工作都是采用C語言進(jìn)行編程設(shè)計的。采用C語言的優(yōu)點在于其快速性、高效性。在利用嵌入式計算機(jī)強(qiáng)大資源的條件下,C語言能滿足模塊的實時性要求。在系統(tǒng)軟件的設(shè)計中,采用了結(jié)構(gòu)化、模塊化的設(shè)計方法,滿足了儀器功能的要求。本接口系統(tǒng)的軟件任務(wù)基本為在CAN協(xié)議芯片SJA1000T有中斷發(fā)生時,根據(jù)SJA1000T的中斷寄存器的內(nèi)容完成相應(yīng)的操作(如發(fā)送、接收數(shù)據(jù)幀等)。其流程圖如圖4所示[7]。

系統(tǒng)設(shè)計中要進(jìn)行接口驅(qū)動程序的設(shè)計,為保證操作系統(tǒng)的穩(wěn)定和安全,驅(qū)動程序必須按一定的規(guī)范來編寫。本系統(tǒng)的驅(qū)動程序主要考慮以下內(nèi)容:設(shè)置端口和中斷號,設(shè)置通訊板通訊默認(rèn)參數(shù),通訊板內(nèi)存分配,映射I/O地址,創(chuàng)建通訊板事件和數(shù)據(jù)接收事件,初始化中斷等[8]。

SJA1000T初始化只有在復(fù)位模式下才能進(jìn)行,初始化主要包括:工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器和接收代碼寄存器的設(shè)置、波特率設(shè)置和中斷允許寄存器的設(shè)置等。SJA1000T在完成初始化后就可以回到工作狀態(tài)進(jìn)行正常的通訊任務(wù)了[9]。

圖4 軟件總流程圖

2.2 CAN多幀數(shù)據(jù)通信打包和解包技術(shù)

CAN通信數(shù)據(jù)傳輸采用短幀結(jié)構(gòu),每幀最多發(fā)送8個字節(jié)的有效數(shù)據(jù),總線的有效傳輸速率很低,當(dāng)在傳輸?shù)臄?shù)據(jù)量超過8個字節(jié)有效數(shù)據(jù)時,給用戶編程帶來了一定的困難。利用如圖5所示的CAN的數(shù)據(jù)包格式,只需將待傳輸?shù)臄?shù)據(jù)進(jìn)行相應(yīng)的打包和解包操作即可實現(xiàn)數(shù)據(jù)的單幀和多幀傳輸,有效地簡化了數(shù)據(jù)通信。

采用如圖5所示的CAN數(shù)據(jù)包格式,無論是單幀還是多幀傳輸,只要把數(shù)據(jù)填入相應(yīng)的發(fā)送緩沖區(qū)即可,在接收方,則將數(shù)據(jù)解包并放入接收緩沖區(qū)即可。

與上述數(shù)據(jù)包格式相對應(yīng),當(dāng)CAN總線進(jìn)行多幀傳輸時,其CAN的多幀數(shù)據(jù)傳輸幀結(jié)構(gòu)如圖6所示。

圖5 發(fā)送數(shù)據(jù)包和接收數(shù)據(jù)包格式

在圖6中,當(dāng)發(fā)送的有效數(shù)據(jù)個數(shù)不超過4個時,一幀數(shù)據(jù)即可傳輸;當(dāng)有效數(shù)據(jù)超過4個時,則需要多幀傳輸。此處的地址變址是指從發(fā)送緩沖區(qū)所取的存

放于該幀的第一個有效數(shù)據(jù)的存儲地址相對于緩沖區(qū)

首地址的偏移量,如第一幀中地址變址為4,第二幀中的地址變址是10。地址變址的設(shè)置,使得對數(shù)據(jù)包的解包和打包實現(xiàn)起來較容易。

圖6 CAN多幀數(shù)據(jù)傳輸幀結(jié)構(gòu)圖

3 結(jié) 語

該通訊板設(shè)計簡單,只需一塊FPGA,一個CAN控制器SJA1000T和收發(fā)器PCA82C250,為增強(qiáng)系統(tǒng)的穩(wěn)定性,在通信通道上均采用光電隔離技術(shù),保護(hù)PC機(jī)避免因地環(huán)流而損壞,增強(qiáng)系統(tǒng)在惡劣環(huán)境中使用的可靠性。該通訊板采用的CAN數(shù)據(jù)包格式提高了總線的有效傳輸速率,經(jīng)測試達(dá)到500 Kb/s,提高了通訊板通訊的實時性。本設(shè)計方案已成功應(yīng)用于工業(yè)控制器中,效果理想。

參考文獻(xiàn)

[1]PC/104嵌入式協(xié)會.PC/104規(guī)范V2.5[Z].2003.

[2]杜尚豐.CAN總線測控技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2007.

[3]武芳瑛,吳滌.一種PC104總線和CAN總線的接口[J].電力自動化設(shè)備,2004,24(8):53-55.

[4]周潤景,圖雅,張麗敏.基于Quartus Ⅱ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計實例[M].北京:電子工業(yè)出版社,2007.

[5][美]Peter J Ashenden.VHDL設(shè)計指南[M].2版.葛紅,黃河,吳繼明,譯.北京:機(jī)械工業(yè)出版社,2005.

[6]Philips.SJA1000 Stand-lone CAN Controller Datasheet[Z].2000.

[7]舒志兵,袁佑新,周瑋.現(xiàn)場總線運動控制系統(tǒng)[M].北京:電子工業(yè)出版社,2007.

[8]鄭勇蕓,饒運濤,鄒繼軍,等.現(xiàn)場總線CAN通信中多線程的應(yīng)用[J].東華理工學(xué)院學(xué)報,2004,27(2):196-198.

[9]雷霖.現(xiàn)場總線控制網(wǎng)絡(luò)技術(shù)[M].北京:電子工業(yè)出版社,2004.

[10]Philips.Philips 82C250 CAN Controller Interface Datasheet[Z].2000.

猜你喜歡
數(shù)據(jù)總線數(shù)據(jù)包嵌入式
一汽-大眾速騰轎車行駛中為何偶發(fā)多個故障燈點亮
2012年產(chǎn)上汽大眾斯柯達(dá)明銳轎車空調(diào)不制冷的故障排除
SmartSniff
搭建基于Qt的嵌入式開發(fā)平臺
智能電網(wǎng)調(diào)度控制系統(tǒng)中的數(shù)據(jù)總線技術(shù)研究
科技資訊(2017年27期)2017-11-24 10:06:06
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
途安車數(shù)據(jù)總線診斷接口故障
石楼县| 屏南县| 紫阳县| 许昌市| 高尔夫| 军事| 雅江县| 南充市| 杨浦区| 西乡县| 甘南县| 会泽县| 海南省| 大理市| 富平县| 侯马市| 兴宁市| 洱源县| 宝兴县| 独山县| 旅游| 石嘴山市| 南召县| 银川市| 历史| 历史| 固始县| 永济市| 普陀区| 兰州市| 金门县| 磐石市| 阳江市| 固阳县| 凭祥市| 清流县| 韩城市| 阿尔山市| 岱山县| 济源市| 龙井市|