利用EPP并行口實壩PC機之間通信的CAN總線設(shè)計
論文作者:曹瓊 蔡淮 程焱 林敏 摘要: 文章簡要介紹了epp并行口及can獨立控制器s3^1000。并深入 研究 pc對sjal000的讀寫。根據(jù)讀寫時序的產(chǎn)生,設(shè)計了兩套硬件方案。同時。結(jié)合在實踐中遇到的 問題 ,指出了一些在can總線協(xié)議使用上需要注意的地方。
關(guān)鍵詞: epp并行口 can總線 sjal000 網(wǎng)絡(luò) 適配卡 利用epp并行口實壩pc機之間通信的can總線設(shè)計西南 交通 大學 計算 機與通信工程學院曹瓊 蔡淮 程焱 林敏摘要文章簡要介紹了epp并行口及can獨立控制器s3^1000。并深入研究pc對sjal000的讀寫。根據(jù)讀寫時序的產(chǎn)生,設(shè)計了兩套硬件方案。同時。結(jié)合在實踐中遇到的問題,指出了一些在can總線協(xié)議使用上需要注意的地方。關(guān)鍵詞l引言can(controuer area network)總線作為現(xiàn)場總線的一種,與其他總線相比可靠性高性價比合理。其主要特點有:(1)多主方式工作,非破壞性的基于優(yōu)先權(quán)的總線仲裁技術(shù);(2)借助接收濾波實現(xiàn)多地址的幀傳送;(3)短幀結(jié)構(gòu)數(shù)據(jù),受干擾率低;(4)發(fā)送期間丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā);(5)對于嚴重錯誤具有自動關(guān)閉總線功能,使總線其他操作不受 影響 ;(6)不關(guān)閉總線即可任意掛接或拆除節(jié)點,增強了系統(tǒng)的靈活性和可擴展性;(7)統(tǒng)一的標準和規(guī)范,使各設(shè)備之間具有較好的互操作性、互換性和通用性等。正是由于can總線的這些優(yōu)良性能, 目前 已 應(yīng)用 于船舶制造、 工業(yè) 控制、建筑保安系統(tǒng)中,而且正成為許多領(lǐng)域的 發(fā)展 方向。2 epp并行口 為了實現(xiàn)大量數(shù)據(jù)的快速、準確傳輸,數(shù)據(jù)通信已經(jīng)成為自動化系統(tǒng)的關(guān)鍵技術(shù)之一。計算機標準串、并行口是pc機的基本部件之一,利用計算機的標準串、并行口來作為pc機與can總線的通信接口,既方便又 經(jīng)濟 。但是由于串行通訊口的通訊效率較低,難以完成大量、實時性高的數(shù)據(jù)傳輸工作,而傳統(tǒng)的spp并行口只能實現(xiàn)數(shù)據(jù)的單向傳輸,但高級并行接口(epp)則可以進行高速的雙向數(shù)據(jù)傳輸,是進行大量數(shù)據(jù)傳輸?shù)囊环N理想選擇。2.1 epp概述 增強型并行口epp(enhanced parallel port)是一種與標準并行口spp(standard parallel port)兼容的高性能的并行連接口。在實際應(yīng)用中,由于epp并行口具有8位雙向數(shù)據(jù)端口、狀態(tài)端口和控制端口,因此,epp可作為8位總線,靈活使用。epp協(xié)議又極大地改善了pc機并行口的數(shù)據(jù)傳輸能力,使得并行口的數(shù)據(jù)傳輸速率可以很容易達到l一2mbps。epp協(xié)議定義了各種單/雙向信號以滿足各自的特殊需要。 2.2 epp寄存器介紹 epp協(xié)議定義的信號分別對應(yīng)三個不同的寄存器,在pc機中,并行口l寄存器的基地址一般為378h,該地址包含讀入和讀出兩個寄存器的雙緩沖寄存器,對應(yīng)ado…ad7雙向數(shù)據(jù)/地址端口;輸入操作epp信號的定義及其描述表l 表l列出了epp信號的定義及其描述。
并行口引腳號epp信號數(shù)據(jù)方向定義
l/write輸出低電平寫,高電平讀
2—9ad[o…7]雙向雙向數(shù)據(jù)/地址線
lointr輸入外設(shè)中斷
llwait輸入握手信號
12用戶定義輸入按不同的外設(shè)自定義
13用戶定義輸入按不同的外設(shè)自定義
14/datastb輸出低電平有效,表示正在進行數(shù)據(jù)讀寫
15用戶定義輸入按不同的外設(shè)自定義
16reset輸出低有效,外設(shè)復(fù)位
17/addstb輸出低電平有效,表示正在進行地址讀寫
18—25gnd信號地
注:①輸出,表示由計算機發(fā)向外設(shè);輸入,表示由外設(shè)發(fā)向計算機。②加“/”表示信號低電平有效。epp寄存器定義表2
378had7ad6ad4ad4ad3ad2adlado
379hwallrintr自定義自定義自定義無定義無定義無定義
37ah無定義無定義read enableirq enbale/addstb/beste/data/write
時使用輸入寄存器,輸出操作時使用輸出寄存器。單向狀態(tài)端口和單向控制端口的寄存器地址分別為379h和37ah,其定義見表2。這三個寄存器是與標準并行口spp兼容的,但實際上除了這三個寄存器之外,epp還定義了其它幾個寄存器! pp不需要從主機送來的信號就能執(zhí)行數(shù)據(jù)交換。當主機把數(shù)據(jù)寫到數(shù)據(jù)緩沖區(qū)時,總線自動產(chǎn)生數(shù)據(jù)選通信號。同樣,從端口讀人數(shù)據(jù)時也是自動產(chǎn)生數(shù)據(jù)選通信號來表示系統(tǒng)正準備接收下一批數(shù)據(jù)。3 can獨立控制器sjal000sjal000是一種獨立控制器,主要用于移動目標和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制(can),是philips半導(dǎo)體pca82c200 can控制器(basiecan)的替代產(chǎn)品。其基本特性有:(1)引腳與pca82c200獨立can控制器兼容。(2)有擴展的接收緩沖器64字節(jié),先進先出(fifo);(3)支持can2.0a和can2.0b協(xié)議;(4)通信位速率可達imbps。而且它增加了一種新的工作模式(pelican),這種模式支持具有很多新特性的can2.0b協(xié)議。4can總線收發(fā)器pca82c250pca82c250是can控制器和物理總線間的接口。器件可以提供對總線差動發(fā)送、接收的能力。采用雙線差分驅(qū)動,有助于抑制汽車等惡劣電氣環(huán)境下的瞬間干擾。其主要特性有:(1)與iso/dis 11898標準全兼容;(2)高速性,最高可達imbps;(3)具有抗汽車環(huán)境下的瞬間干擾能力,保護總線能力;(4)降低射頻干擾的斜率控制;(5)熱保護;(6)總線與電源及地之間的短路保護;(7)低電流待機方式;(8)掉電自動關(guān)閉輸出;(9)可支持多達110個節(jié)點相連接等。 5 適配卡設(shè)計 can總線的卓越性能為 工業(yè) 控制提供了一種可靠的數(shù)據(jù)通信,為了擴展can總線的監(jiān)控和管理功能,應(yīng)設(shè)計一塊適配卡,連接pc機的并行口,該卡上具備can接口和pc接口特性,它完成的任務(wù)主要是pc機與總線之間的通信。 為此,適配卡的主要組成有:can總線控制器(sjal000)、can總線驅(qū)動器(pca82c250)、epp并行端口。sjal000是集成的獨立can控制器,它負責完成can總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能。sjal000片含有控制寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器和收發(fā)寄存器。pc機通過讀寫這些寄存器來實現(xiàn)對sjal000的控制;芯片的tx0、txl、rx0、rxl引腳用于與can總線的接口。pca82c250是專門用于can總線收發(fā)驅(qū)動的9腳芯片,txd、rxd引腳分別接收和發(fā)送驅(qū)動后的信號;canh、canl引腳接至雙絞線或同軸電纜等傳輸介質(zhì)。使用pca82c250可以擴大通信距離,能提高系統(tǒng)的抗干擾能力,保護總線,降低射頻干擾,實現(xiàn)熱防護等。sjal000的中斷輸出信號/int接到epp的intr中斷后,通過中斷方式實現(xiàn)pc機與can控制器的通信。由于sjal000的中斷輸出信號是低電平有效,而epp的中斷信號是高電平有效,所以在他們的連線之間必須加一個反向器。根據(jù)通信讀寫時序的產(chǎn)生,設(shè)計了一種由軟件產(chǎn)生讀寫時序的電路和一種由硬件產(chǎn)生讀寫時序的電路。5.1軟件產(chǎn)生讀寫時序電路 連線說明:sjal000的ado~ad7直接與epp并行口的ado~ad7相連;ale直接與nwrite相連;/rd,/wr分別與naddstrobe和ndatastrobe相連;/int的引線反向后與epp的intr相連(如圖l所示)! 〈朔N電路設(shè)計需要軟件產(chǎn)生訪問外設(shè)芯片所需的讀寫時序。在我們的 應(yīng)用 程序中,對sjal000的讀寫函數(shù)分別為readreg和setreg,用匯編語言實現(xiàn)如下(如表3所示):5.2硬件產(chǎn)生讀寫時序 連線說明:nwait信號為外設(shè)發(fā)送給pc的握手信號,以便pc在訪問慢速外設(shè)時插入等待周期。
讀寫函數(shù)表表3
void setreg(im port,int value)//通過雙向口向sjal000發(fā)送數(shù)據(jù),port為sjal000寄存器的地址,value為要設(shè)置的值im readreg(int port)//讀取sjal000寄存器的值,port為sjal000寄存器的地址,返回的值為該寄存器的值
{_sflm}mov esx,0//臨時寄存器清零mov dx,37ahmov al,0dshout dx,al//write高,ale低電平,地址選通mov dx,378hmov eax,portout dx,al//將要訪問的sial000寄存器地址放上數(shù)據(jù)線mov dx,37ahmov a1,0d4hout dx,al//write高。ale高,將地址信號鎖存mov a1,0d5hout dx,al//write高,ale為低電平,地址選通mov dx,378hmdv eax,valueout dx,al//把要寫的數(shù)據(jù)送上數(shù)據(jù)總線mov dx.37a}imov a1.0ddhout山.且j//write低,可寫,ale低,地址選通,將數(shù)據(jù)寫入sjal000mov ai,0d5hout(1x,al//復(fù)位,write為低,ale低}}}int retumcode=0:asm}mo~e,sx,0mov dx,37alimov a1,0d5hout dx,al//read為低電平,ale低,地址選通lnov dx,378hmov e.sx,portout dx,al//將要訪問的sjal000寄存器地址放上數(shù)據(jù)線mov(b,37ahmov a1,0d4hout dx,al//read低,ale高,將地址鎖存mov a1.0d5hout dx.a(chǎn)l//read低,ale低,地址選通mov dx.37ailmov a1.0d7h//read為低,ale低,數(shù)據(jù)被送上數(shù)據(jù)線out cb,almov a1.0f7hout dx.a(chǎn)l/,lreadenable為1.允許數(shù)據(jù)讀入mov eax.0mov dx,378h.m al,dx,//從效據(jù)總線讀人寄存器mov returneode。eax[nov dx,37ahmov a1,0f5hout dx,al//read高,ale低mov a1,0d5hout dx,al//恢復(fù),關(guān)掉readenble}ieturn retumcode;}
注:向控.i端口37ah的addstb,datastb,write位寫入1時,并行口17、14和1;i腳均為低電平;相反寫入0時,三個引腳均為高電平! jal000的訪問時間在40ns以內(nèi),所以pc在訪問sjal000時完全可以不用插入等待周期。nwait可由naddrstrobe和ndatastrobe信號經(jīng)過一個與非門后產(chǎn)生。由于sjal000的ale是下降鎖存地址信號,所以將naddrstrobe反相后與ale相連。在epp的數(shù)據(jù)讀/寫周期時,sjal000的rd和wr控制信號應(yīng)該有效,而在地址讀/寫周期時應(yīng)該無效。sjal000的reset腳與并行端口的nreset腳相連,由pc機向sjal000提供復(fù)位信號。! 〉刂罚瘮(shù)據(jù)讀寫說明:握手信號nwait由naddrstrobe和ndatastrobe信號經(jīng)過一個與非門后再延遲一段時間產(chǎn)生,然后可利用epp并行口的數(shù)據(jù)/地址周期來產(chǎn)生sjal000芯片的讀寫時序。sjal000芯片的讀寫時序分為地址鎖存和數(shù)據(jù)讀寫。地址鎖存解決的是地址的寫入和地址鎖存信號的產(chǎn)生;數(shù)據(jù)讀寫是數(shù)據(jù)的讀寫以及相應(yīng)的讀寫控制信號的產(chǎn)生。所以,可以利用epp的地址寫周期來產(chǎn)生sjal000讀寫時序的地址鎖存部分,并用epp并行口的數(shù)據(jù)讀寫周期來產(chǎn)生sjal000讀寫時序的數(shù)據(jù)讀寫部分。 數(shù)據(jù)寫周期的時序如圖3所示,其步驟如下:
(1)程序向epp的data端口發(fā)送一個i/o寫周期命令;(2)插入nwrite信號,同時數(shù)據(jù)出現(xiàn)在并行端口數(shù)據(jù)線上;(3)當nwait信號變成低電平之后,插人數(shù)據(jù)選通信號;(4)端口等待來自外設(shè)的應(yīng)答信號(取消nwalt信號);(5)取消數(shù)據(jù)選通信號,epp周期結(jié)束;數(shù)據(jù)讀周期的時序如圖4所示,其讀數(shù)據(jù)的步驟如下:
(1)程序中向eppdata端口發(fā)送一個i/o讀周期命令;(2)當nwait信號變成低電平之后,插入數(shù)據(jù)選通信號;(3)端口讀取數(shù)據(jù)位,取消數(shù)據(jù)選通信號;(4)端口等待來自外設(shè)的應(yīng)答信號(取消nwait信號);(5)epp周期結(jié)束;(6)isa周期結(jié)束! 〉刂穼懞偷刂纷x周期除了把ndatastrobe信號替換成naddstrobe之外完全一樣。相關(guān)引腳直值表如表4所示。5.3兩種設(shè)計的比較 實驗表明,采用軟件產(chǎn)生讀寫時序設(shè)計的硬件比較簡單,便于調(diào)試,但是程序編寫比較復(fù)雜(需編寫程序產(chǎn)生sjal000的讀寫時序);用硬件產(chǎn)生讀寫時序設(shè)計的硬件稍微復(fù)雜,硬件調(diào)試也復(fù)雜一些,但是應(yīng)用程序的編寫要簡單一些(不用編寫程序產(chǎn)生sjal000的讀寫時序),而且端口讀寫的速度也快得多。6 設(shè)計中存在的幾個 問題 (1)pca82c250第8腳與地之間的電阻rs稱為斜率電阻,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統(tǒng)將處于高速工作方式。在這種方式下,為避免射頻干擾,建議使相關(guān)引腳的真值表表4
/ndata/naddr/nwrite/wr/rdale備注
0l00l0數(shù)據(jù)讀,地址鎖存
olllo0數(shù)據(jù)寫,地址鎖存
l000ll地址寫,地址選通
lo1l0l地址讀,地址選通
1l0ll0地址數(shù)據(jù)均無效.等待
llllll地址數(shù)據(jù)均無效,等待
注:①標加“/”表示低電平有效。加字母“n”表示是并行口的引腳。②因為地址和數(shù)據(jù)不能同時被選通,所以,真值表中就不列出它們同時被選通的情況。用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升和下降的斜率取決于rs的阻值。實驗數(shù)據(jù)表明,15~200k為rj較理想的取值范圍。在這種方式下,可以使用平行線或雙絞線作總線。(2)sjal000的txl引腳懸空,rxl引腳的電位必須維持在約o.5vce上,否則將不能形成can協(xié)議所要求的電平邏輯。如果系統(tǒng)傳輸距離近,環(huán)境干擾小,可以不用電流隔離,這樣可以直接把pca82c250的vrff端(約為0.5vcc)與rxl腳相連,從而簡化電路。(3)必須將sjal000的中斷信號取反之后才能接到pc機并行口的中斷引腳上,這樣才能保證硬件中斷的正確觸發(fā)。7 通信控制程序 根據(jù)系統(tǒng)要求和硬件設(shè)計原理,編寫的通信控制程序應(yīng)該完成以下功能:在通信控制主界面中可以加載并行口驅(qū)動程序,初始化sjal000;發(fā)送、接收數(shù)據(jù);監(jiān)測寄存器的變化;軟件復(fù)位等附加功能。8 結(jié)束語 在此設(shè)計中,我們掌握了有關(guān)can總線和epp并行口的基本知識,設(shè)計了一個基于epp協(xié)議的用于pc機間通信的can總線適配卡。編寫了相應(yīng)的驅(qū)動程序(有關(guān)配套軟件的具體問題,不在此介紹),經(jīng)實踐證明,兩種方案均可行。為了進一步滿足應(yīng)用的需要,在完善組網(wǎng)設(shè)計和功能管理方面,can還有很多 理論 和技術(shù)方面的問題有待解決。其中包括標準的開放式應(yīng)用層協(xié)議的制定、更靈活的 網(wǎng)絡(luò) 拓撲結(jié)構(gòu)的提出和使用,更簡單、 經(jīng)濟 的單片式can芯片的研制等等。 參考 文獻 1鄔寬明.can總線原理和應(yīng)用系統(tǒng)設(shè)計.北京航空航天大學出版社。19962陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用.清華大學出版社, 19993 sjal000 stand-alone can controller data sheet. philips公司產(chǎn)品說明書。19974 pca82c250 can controller interface data sheet。 philips公司產(chǎn)品說明書,20005安格斯生.《并行端口大全》 中國 電力出版社,20016饒家明.can總線智能節(jié)點的設(shè)計和實現(xiàn).《工業(yè)儀表與自動化裝置》.2002;57張培仁.采用epp協(xié)議的can總線監(jiān)控節(jié)點的設(shè)計與實現(xiàn).《 計算 機應(yīng)用》第21卷。第2期論文出處(作者):曹瓊 蔡淮 程焱 林
高校新校區(qū)智能化建設(shè)常見問題探討
標準化編程的IEC1131-3在DCS中應(yīng)用分析
【利用EPP并行口實壩PC機之間通信的CAN總線設(shè)計】相關(guān)文章:
基于單片機的CAN智能總線節(jié)點的設(shè)計03-07
基于CAN總線的EV電控系統(tǒng)通信的設(shè)計與開發(fā)03-19
基于PCI總線的CAN卡的設(shè)計與實現(xiàn)03-18
基于CAN總線的汽車液晶儀表設(shè)計03-07
利用VB實現(xiàn)PC機與多單片機通訊03-18
用PComm開發(fā)PC機與單片機的通信程序03-19
帶熱插拔的CompactPCI CAN總線接口板設(shè)計03-30
利用EPP接口協(xié)議實現(xiàn)高速數(shù)據(jù)通信03-19
基于PC104總線的故障診斷裝置的設(shè)計03-18