利用EPP并行口實壩PC機之間通信的CAN總線設計
論文作者:曹瓊 蔡淮 程焱 林敏 摘要: 文章簡要介紹了epp并行口及can獨立控制器s3^1000。并深入 研究 pc對sjal000的讀寫。根據讀寫時序的產生,設計了兩套硬件方案。同時。結合在實踐中遇到的 問題 ,指出了一些在can總線協議使用上需要注意的地方。
關鍵詞: epp并行口 can總線 sjal000 網絡 適配卡 利用epp并行口實壩pc機之間通信的can總線設計西南 交通 大學 計算 機與通信工程學院曹瓊 蔡淮 程焱 林敏摘要文章簡要介紹了epp并行口及can獨立控制器s3^1000。并深入研究pc對sjal000的讀寫。根據讀寫時序的產生,設計了兩套硬件方案。同時。結合在實踐中遇到的問題,指出了一些在can總線協議使用上需要注意的地方。關鍵詞l引言can(controuer area network)總線作為現場總線的一種,與其他總線相比可靠性高性價比合理。其主要特點有:(1)多主方式工作,非破壞性的基于優先權的總線仲裁技術;(2)借助接收濾波實現多地址的幀傳送;(3)短幀結構數據,受干擾率低;(4)發送期間丟失仲裁或由于出錯而遭破壞的幀可自動重發;(5)對于嚴重錯誤具有自動關閉總線功能,使總線其他操作不受 影響 ;(6)不關閉總線即可任意掛接或拆除節點,增強了系統的靈活性和可擴展性;(7)統一的標準和規范,使各設備之間具有較好的互操作性、互換性和通用性等。正是由于can總線的這些優良性能, 目前 已 應用 于船舶制造、 工業 控制、建筑保安系統中,而且正成為許多領域的 發展 方向。2 epp并行口 為了實現大量數據的快速、準確傳輸,數據通信已經成為自動化系統的關鍵技術之一。計算機標準串、并行口是pc機的基本部件之一,利用計算機的標準串、并行口來作為pc機與can總線的通信接口,既方便又 經濟 。但是由于串行通訊口的通訊效率較低,難以完成大量、實時性高的數據傳輸工作,而傳統的spp并行口只能實現數據的單向傳輸,但高級并行接口(epp)則可以進行高速的雙向數據傳輸,是進行大量數據傳輸的一種理想選擇。2.1 epp概述 增強型并行口epp(enhanced parallel port)是一種與標準并行口spp(standard parallel port)兼容的高性能的并行連接口。在實際應用中,由于epp并行口具有8位雙向數據端口、狀態端口和控制端口,因此,epp可作為8位總線,靈活使用。epp協議又極大地改善了pc機并行口的數據傳輸能力,使得并行口的數據傳輸速率可以很容易達到l一2mbps。epp協議定義了各種單/雙向信號以滿足各自的特殊需要!2.2 epp寄存器介紹 epp協議定義的信號分別對應三個不同的寄存器,在pc機中,并行口l寄存器的基地址一般為378h,該地址包含讀入和讀出兩個寄存器的雙緩沖寄存器,對應ado…ad7雙向數據/地址端口;輸入操作epp信號的定義及其描述表l 表l列出了epp信號的定義及其描述。
并行口引腳號epp信號數據方向定義
l/write輸出低電平寫,高電平讀
2—9ad[o…7]雙向雙向數據/地址線
lointr輸入外設中斷
llwait輸入握手信號
12用戶定義輸入按不同的外設自定義
13用戶定義輸入按不同的外設自定義
14/datastb輸出低電平有效,表示正在進行數據讀寫
15用戶定義輸入按不同的外設自定義
16reset輸出低有效,外設復位
17/addstb輸出低電平有效,表示正在進行地址讀寫
18—25gnd信號地
注:①輸出,表示由計算機發向外設;輸入,表示由外設發向計算機。②加“/”表示信號低電平有效。epp寄存器定義表2
378had7ad6ad4ad4ad3ad2adlado
379hwallrintr自定義自定義自定義無定義無定義無定義
37ah無定義無定義read enableirq enbale/addstb/beste/data/write
時使用輸入寄存器,輸出操作時使用輸出寄存器。單向狀態端口和單向控制端口的寄存器地址分別為379h和37ah,其定義見表2。這三個寄存器是與標準并行口spp兼容的,但實際上除了這三個寄存器之外,epp還定義了其它幾個寄存器! pp不需要從主機送來的信號就能執行數據交換。當主機把數據寫到數據緩沖區時,總線自動產生數據選通信號。同樣,從端口讀人數據時也是自動產生數據選通信號來表示系統正準備接收下一批數據。3 can獨立控制器sjal000sjal000是一種獨立控制器,主要用于移動目標和一般工業環境中的區域網絡控制(can),是philips半導體pca82c200 can控制器(basiecan)的替代產品。其基本特性有:(1)引腳與pca82c200獨立can控制器兼容。(2)有擴展的接收緩沖器64字節,先進先出(fifo);(3)支持can2.0a和can2.0b協議;(4)通信位速率可達imbps。而且它增加了一種新的工作模式(pelican),這種模式支持具有很多新特性的can2.0b協議。4can總線收發器pca82c250pca82c250是can控制器和物理總線間的接口。器件可以提供對總線差動發送、接收的能力。采用雙線差分驅動,有助于抑制汽車等惡劣電氣環境下的瞬間干擾。其主要特性有:(1)與iso/dis 11898標準全兼容;(2)高速性,最高可達imbps;(3)具有抗汽車環境下的瞬間干擾能力,保護總線能力;(4)降低射頻干擾的斜率控制;(5)熱保護;(6)總線與電源及地之間的短路保護;(7)低電流待機方式;(8)掉電自動關閉輸出;(9)可支持多達110個節點相連接等。 5 適配卡設計 can總線的卓越性能為 工業 控制提供了一種可靠的數據通信,為了擴展can總線的監控和管理功能,應設計一塊適配卡,連接pc機的并行口,該卡上具備can接口和pc接口特性,它完成的任務主要是pc機與總線之間的通信! 榇,適配卡的主要組成有:can總線控制器(sjal000)、can總線驅動器(pca82c250)、epp并行端口。sjal000是集成的獨立can控制器,它負責完成can總線通信協議的物理層和數據鏈路層的功能。sjal000片含有控制寄存器、命令寄存器、狀態寄存器、中斷寄存器和收發寄存器。pc機通過讀寫這些寄存器來實現對sjal000的控制;芯片的tx0、txl、rx0、rxl引腳用于與can總線的接口。pca82c250是專門用于can總線收發驅動的9腳芯片,txd、rxd引腳分別接收和發送驅動后的信號;canh、canl引腳接至雙絞線或同軸電纜等傳輸介質。使用pca82c250可以擴大通信距離,能提高系統的抗干擾能力,保護總線,降低射頻干擾,實現熱防護等。sjal000的中斷輸出信號/int接到epp的intr中斷后,通過中斷方式實現pc機與can控制器的通信。由于sjal000的中斷輸出信號是低電平有效,而epp的中斷信號是高電平有效,所以在他們的連線之間必須加一個反向器。根據通信讀寫時序的產生,設計了一種由軟件產生讀寫時序的電路和一種由硬件產生讀寫時序的電路。5.1軟件產生讀寫時序電路 連線說明:sjal000的ado~ad7直接與epp并行口的ado~ad7相連;ale直接與nwrite相連;/rd,/wr分別與naddstrobe和ndatastrobe相連;/int的引線反向后與epp的intr相連(如圖l所示)! 〈朔N電路設計需要軟件產生訪問外設芯片所需的讀寫時序。在我們的 應用 程序中,對sjal000的讀寫函數分別為readreg和setreg,用匯編語言實現如下(如表3所示):5.2硬件產生讀寫時序 連線說明:nwait信號為外設發送給pc的握手信號,以便pc在訪問慢速外設時插入等待周期。


讀寫函數表表3
void setreg(im port,int value)//通過雙向口向sjal000發送數據,port為sjal000寄存器的地址,value為要設置的值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寄存器地址放上數據線mov dx,37ahmov a1,0d4hout dx,al//write高。ale高,將地址信號鎖存mov a1,0d5hout dx,al//write高,ale為低電平,地址選通mov dx,378hmdv eax,valueout dx,al//把要寫的數據送上數據總線mov dx.37a}imov a1.0ddhout山.且j//write低,可寫,ale低,地址選通,將數據寫入sjal000mov ai,0d5hout(1x,al//復位,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寄存器地址放上數據線mov(b,37ahmov a1,0d4hout dx,al//read低,ale高,將地址鎖存mov a1.0d5hout dx.al//read低,ale低,地址選通mov dx.37ailmov a1.0d7h//read為低,ale低,數據被送上數據線out cb,almov a1.0f7hout dx.al/,lreadenable為1.允許數據讀入mov eax.0mov dx,378h.m al,dx,//從效據總線讀人寄存器mov returneode。eax[nov dx,37ahmov a1,0f5hout dx,al//read高,ale低mov a1,0d5hout dx,al//恢復,關掉readenble}ieturn retumcode;}
注:向控.i端口37ah的addstb,datastb,write位寫入1時,并行口17、14和1;i腳均為低電平;相反寫入0時,三個引腳均為高電平。 sjal000的訪問時間在40ns以內,所以pc在訪問sjal000時完全可以不用插入等待周期。nwait可由naddrstrobe和ndatastrobe信號經過一個與非門后產生。由于sjal000的ale是下降鎖存地址信號,所以將naddrstrobe反相后與ale相連。在epp的數據讀/寫周期時,sjal000的rd和wr控制信號應該有效,而在地址讀/寫周期時應該無效。sjal000的reset腳與并行端口的nreset腳相連,由pc機向sjal000提供復位信號。! 〉刂罚瘮祿x寫說明:握手信號nwait由naddrstrobe和ndatastrobe信號經過一個與非門后再延遲一段時間產生,然后可利用epp并行口的數據/地址周期來產生sjal000芯片的讀寫時序。sjal000芯片的讀寫時序分為地址鎖存和數據讀寫。地址鎖存解決的是地址的寫入和地址鎖存信號的產生;數據讀寫是數據的讀寫以及相應的讀寫控制信號的產生。所以,可以利用epp的地址寫周期來產生sjal000讀寫時序的地址鎖存部分,并用epp并行口的數據讀寫周期來產生sjal000讀寫時序的數據讀寫部分! 祿䦟懼芷诘臅r序如圖3所示,其步驟如下:

(1)程序向epp的data端口發送一個i/o寫周期命令;(2)插入nwrite信號,同時數據出現在并行端口數據線上;(3)當nwait信號變成低電平之后,插人數據選通信號;(4)端口等待來自外設的應答信號(取消nwalt信號);(5)取消數據選通信號,epp周期結束;數據讀周期的時序如圖4所示,其讀數據的步驟如下:

(1)程序中向eppdata端口發送一個i/o讀周期命令;(2)當nwait信號變成低電平之后,插入數據選通信號;(3)端口讀取數據位,取消數據選通信號;(4)端口等待來自外設的應答信號(取消nwait信號);(5)epp周期結束;(6)isa周期結束。 地址寫和地址讀周期除了把ndatastrobe信號替換成naddstrobe之外完全一樣。相關引腳直值表如表4所示。5.3兩種設計的比較 實驗表明,采用軟件產生讀寫時序設計的硬件比較簡單,便于調試,但是程序編寫比較復雜(需編寫程序產生sjal000的讀寫時序);用硬件產生讀寫時序設計的硬件稍微復雜,硬件調試也復雜一些,但是應用程序的編寫要簡單一些(不用編寫程序產生sjal000的讀寫時序),而且端口讀寫的速度也快得多。6 設計中存在的幾個 問題 (1)pca82c250第8腳與地之間的電阻rs稱為斜率電阻,它的取值決定了系統處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統將處于高速工作方式。在這種方式下,為避免射頻干擾,建議使相關引腳的真值表表4
/ndata/naddr/nwrite/wr/rdale備注
0l00l0數據讀,地址鎖存
olllo0數據寫,地址鎖存
l000ll地址寫,地址選通
lo1l0l地址讀,地址選通
1l0ll0地址數據均無效.等待
llllll地址數據均無效,等待
注:①標加“/”表示低電平有效。加字母“n”表示是并行口的引腳。②因為地址和數據不能同時被選通,所以,真值表中就不列出它們同時被選通的情況。用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升和下降的斜率取決于rs的阻值。實驗數據表明,15~200k為rj較理想的取值范圍。在這種方式下,可以使用平行線或雙絞線作總線。(2)sjal000的txl引腳懸空,rxl引腳的電位必須維持在約o.5vce上,否則將不能形成can協議所要求的電平邏輯。如果系統傳輸距離近,環境干擾小,可以不用電流隔離,這樣可以直接把pca82c250的vrff端(約為0.5vcc)與rxl腳相連,從而簡化電路。(3)必須將sjal000的中斷信號取反之后才能接到pc機并行口的中斷引腳上,這樣才能保證硬件中斷的正確觸發。7 通信控制程序 根據系統要求和硬件設計原理,編寫的通信控制程序應該完成以下功能:在通信控制主界面中可以加載并行口驅動程序,初始化sjal000;發送、接收數據;監測寄存器的變化;軟件復位等附加功能。8 結束語 在此設計中,我們掌握了有關can總線和epp并行口的基本知識,設計了一個基于epp協議的用于pc機間通信的can總線適配卡。編寫了相應的驅動程序(有關配套軟件的具體問題,不在此介紹),經實踐證明,兩種方案均可行。為了進一步滿足應用的需要,在完善組網設計和功能管理方面,can還有很多 理論 和技術方面的問題有待解決。其中包括標準的開放式應用層協議的制定、更靈活的 網絡 拓撲結構的提出和使用,更簡單、 經濟 的單片式can芯片的研制等等。 參考 文獻 1鄔寬明.can總線原理和應用系統設計.北京航空航天大學出版社。19962陽憲惠.現場總線技術及其應用.清華大學出版社, 19993 sjal000 stand-alone can controller data sheet. philips公司產品說明書。19974 pca82c250 can controller interface data sheet。 philips公司產品說明書,20005安格斯生.《并行端口大全》 中國 電力出版社,20016饒家明.can總線智能節點的設計和實現.《工業儀表與自動化裝置》.2002;57張培仁.采用epp協議的can總線監控節點的設計與實現.《 計算 機應用》第21卷。第2期論文出處(作者):曹瓊 蔡淮 程焱 林
高校新校區智能化建設常見問題探討
標準化編程的IEC1131-3在DCS中應用分析
【利用EPP并行口實壩PC機之間通信的CAN總線設計】相關文章:
基于單片機的CAN智能總線節點的設計03-07
基于CAN總線的EV電控系統通信的設計與開發03-19
基于PCI總線的CAN卡的設計與實現03-18
基于CAN總線的汽車液晶儀表設計03-07
利用VB實現PC機與多單片機通訊03-18
用PComm開發PC機與單片機的通信程序03-19
帶熱插拔的CompactPCI CAN總線接口板設計03-30
利用EPP接口協議實現高速數據通信03-19
基于PC104總線的故障診斷裝置的設計03-18