利用epp并行口實壩pc機之間通信的can總線設計_secret_第1頁
利用epp并行口實壩pc機之間通信的can總線設計_secret_第2頁
利用epp并行口實壩pc機之間通信的can總線設計_secret_第3頁
利用epp并行口實壩pc機之間通信的can總線設計_secret_第4頁
利用epp并行口實壩pc機之間通信的can總線設計_secret_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、利用EPP并行口實壩PC機之間通信的CAN總線設計摘 要:文章簡要介紹了EPP并行口及CAN獨立控制器s31000。并深入研究PC對SJAl000的讀寫。根據(jù)讀寫時序的產(chǎn)生,設計了兩套硬件方案。同時。結(jié)合在實踐中遇到的問題,指出了一些在CAN總線協(xié)議使用上需要注意的地方。關(guān)鍵字:EPP并行口 CAN總線 SJAl000 網(wǎng)絡適配卡l引言CAN(ControUer Area Network)總線作為現(xiàn)場總線的一種,與其他總線相比可靠性高性價比合理。其主要特點有:(1)多主方式工作,非破壞性的基于優(yōu)先權(quán)的總線仲裁技術(shù);(2)借助接收濾波實現(xiàn)多地址的幀傳送;(3)短幀結(jié)構(gòu)數(shù)據(jù),受干擾率低;(4)發(fā)送

2、期間丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā);(5)對于嚴重錯誤具有自動關(guān)閉總線功能,使總線其他操作不受影響;(6)不關(guān)閉總線即可任意掛接或拆除節(jié)點,增強了系統(tǒng)的靈活性和可擴展性;(7)統(tǒng)一的標準和規(guī)范,使各設備之間具有較好的互操作性、互換性和通用性等。正是由于CAN總線的這些優(yōu)良性能,目前已應用于船舶制造、工業(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)濟。但是由于串行通訊口

3、的通訊效率較低,難以完成大量、實時性高的數(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)兼容的高性能的并行連接口。在實際應用中,由于EPP并行口具有8位雙向數(shù)據(jù)端口、狀態(tài)端口和控制端口,因此,EPP可作為8位總線,靈活使 用。EPP協(xié)議又極大地改善了PC機并行口的數(shù)據(jù)傳輸能力,使得并行口的數(shù)據(jù)傳輸速率可以很容易達到l一2Mbps。EPP協(xié)議

4、定義了各種單雙向信號以 滿足各自的特殊需要。22 EPP寄存器介紹EPP協(xié)議定義的信號分別對應三個不同的寄存器,在PC機中,并行口l寄存器的基地址一般為378H,該地址包含讀入和讀出兩個寄存器的雙緩沖寄存器,對應ADOAD7雙向數(shù)據(jù)地址端口;輸入操作EPP信號的定義及其描述表l表l列出了EPP信號的定義及其描述。并行口引腳號EPP信號數(shù)據(jù)方向定義lWRITE輸出低電平寫,高電平讀29ADO7雙向雙向數(shù)據(jù)地址線lOINTR輸入外設中斷l(xiāng)lWAIT輸入握手信號12用戶定義輸入按不同的外設自定義13用戶定義輸入按不同的外設自定義14DATASTB輸出低電平有效,表示正在進行數(shù)據(jù)讀寫15用戶定義輸入按

5、不同的外設自定義16RESET輸出低有效,外設復位17ADDSTB輸出低電平有效,表示正在進行地址讀寫1825GND信號地注:輸出,表示由計算機發(fā)向外設;輸入,表示由外設發(fā)向計算機。加“”表示信號低電平有效。EPP寄存器定義表2378HAD7AD6AD4AD4AD3AD2ADlADO379HWAllrINTR自定義自定義自定義無定義無定義無定義37AH無定義無定義READ ENABLEIRQ ENBALEADDSTBBESTEDATA/write時使用輸入寄存器,輸出操作時使用輸出寄存器。單向狀態(tài)端口和單向控制端口的寄存器地址分別為379H和37AH,其定義見表2。這三個寄存器是與標準并行口S

6、PP兼容的,但實際上除了這三個寄存器之外,EPP還定義了其它幾個寄存器。EPP不需要從主機送來的信號就能執(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)絡控制(CAN),是Philips半導體PCA82C200 CAN控制器(BasieCAN)的替代產(chǎn)品。其基本特性有:(1)引腳與PCA82C200獨立CAN控制器兼容。(2)有擴展的接收緩沖器64字節(jié),先進先出(FIFO);(3)支持CAN

7、20A和CAN20B協(xié)議;(4)通信位速率可達IMbps。而且它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN20B協(xié)議。4CAN總線收發(fā)器PCA82C250PCA82C250是CAN控制器和物理總線間的接口。器件可以提供對總線差動發(fā)送、接收的能力。采用雙線差分驅(qū)動,有助于抑制汽車等惡劣電氣環(huán)境下的瞬間干擾。其主要特性有:(1)與ISODIS 11898標準全兼容;(2)高速性,最高可達IMbps;(3)具有抗汽車環(huán)境下的瞬間干擾能力,保護總線能力;(4)降低射頻干擾的斜率控制;(5)熱保護;(6)總線與電源及地之間的短路保護;(7)低電流待機方式;(8)掉電自動

8、關(guān)閉輸出;(9)可支持多達110個節(jié)點相連接等。5適配卡設計CAN總線的卓越性能為工業(yè)控制提供了一種可靠的數(shù)據(jù)通信,為了擴展CAN總線的監(jiān)控和管理功能,應設計一塊適配卡,連接PC機的并行口,該卡上具備CAN接口和PC接口特性,它完成的任務主要是PC機與總線之間的通信。 為此,適配卡的主要組成有:CAN總線控制器(sJAl000)、CAN總線驅(qū)動器(PCA82C250)、EPP并行端口。sJAl000是集成的獨 立CAN控制器,它負責完成CAN總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能。sJAl000片含有控制寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器和收發(fā) 寄存器。PC機通過讀寫這些寄存器來實現(xiàn)對

9、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)生,

10、設計了一種由軟件產(chǎn)生讀寫時序的電路和一種由硬件產(chǎn)生讀寫時序的電路。51軟件產(chǎn)生讀寫時序電路連線說明:sJAl000的ADOAD7直接與EPP并行口的ADOAD7相連;ALE直接與nWrite相連;RD,WR分別與nAddStrobe和nDataStrobe相連;INT的引線反向后與EPP的INTR相連(如圖l所示)。此種電路設計需要軟件產(chǎn)生訪問外設芯片所需的讀寫時序。在我們的應用程序中,對sJAl000的讀寫函數(shù)分別為ReadReg和SetReg,用匯編語言實現(xiàn)如下(如表3所示):52硬件產(chǎn)生讀寫時序連線說明:nWAIT信號為外設發(fā)送給PC的握手信號,以便PC在訪問慢速外設時插入等待周期。讀寫

11、函數(shù)表表3void SetReg(im port,int Value)通過雙向口向sJAl000發(fā)送數(shù)據(jù),port為sJAl000寄存器的地址,value為要設置的值im ReadReg(int port)讀取SJAl000寄存器的值,port為sJAl000寄存器的地址,返回的值為該寄存器的值_sflmmov esx,0臨時寄存器清零mov dx,37ahmov al,0dShout dx,alWRITE高,ALE低電平,地址選通mov dx,378hmov eax,portout dx,al將要訪問的sIAl000寄存器地址放上數(shù)據(jù)線mov dx,37ahmov a1,0d4hout dx

12、,alWRITE高。ALE高,將地址信號鎖存mov a1,0d5hout dx,alWRITE高,ALE為低電平,地址選通mov dx,378hmDv eax,valueout dx,al把要寫的數(shù)據(jù)送上數(shù)據(jù)總線mov dx37aImov a1.0ddhout山且JWRITE低,可寫,ALE低,地址選通,將數(shù)據(jù)寫入sJAl000mov aI,0d5hout(1x,al復位,WRITE為低,ALE低int retumcode=0:asmmoe,sx,0mov dx,37alImov a1,0d5hout dx,alREAD為低電平,ALE低,地址選通lnov dx,378hmov esx,por

13、tout dx,al將要訪問的sJAl000寄存器地址放上數(shù)據(jù)線mov(b,37ahmov a1,0d4hout dx,alREAD低,ALE高,將地址鎖存mov a1.0d5hout dxalREAD低,ALE低,地址選通mov dx37aIlmov a1.0d7hREAD為低,ALE低,數(shù)據(jù)被送上數(shù)據(jù)線out cb,almov a1.0f7hout dxal,lREADENABLE為1允許數(shù)據(jù)讀入mov eax0mov dx,378hm al,dx,從效據(jù)總線讀人寄存器mov returneode。eaxnov dx,37ahmov a1,0f5hout dx,aLREAD高,ALE低mo

14、v a1,0d5hout dx,al恢復,關(guān)掉READENBLEieturn retumcode;注:向控I端口37AH的ADDSTB,DATASTB,WRITE位寫入1時,并行口17、14和1;I腳均為低電平;相反寫入0時,三個引腳均為高電平。 SJAl000的訪問時間在40ns以內(nèi),所以PC在訪問sJAl000時完全可以不用插入等待周期。nWAIT可由nAddrStrobe和 nDataStrobe信號經(jīng)過一個與非門后產(chǎn)生。由于sJAl000的ALE是下降鎖存地址信號,所以將nAddrStrobe反相后與ALE相連。在 EPP的數(shù)據(jù)讀寫周期時,sJAl000的RD和WR控制信號應該有效,而

15、在地址讀寫周期時應該無效。sJAl000的RESET腳與并行端口的 nRESET腳相連,由PC機向sJAl000提供復位信號。地址數(shù)據(jù)讀寫說明:握手信號nWAIT由nAddrStrobe和 nDataStrobe信號經(jīng)過一個與非門后再延遲一段時間產(chǎn)生,然后可利用EPP并行口的數(shù)據(jù)地址周期來產(chǎn)生sJAl000芯片的讀寫時序。 sJAl000芯片的讀寫時序分為地址鎖存和數(shù)據(jù)讀寫。地址鎖存解決的是地址的寫入和地址鎖存信號的產(chǎn)生;數(shù)據(jù)讀寫是數(shù)據(jù)的讀寫以及相應的讀寫控制信號的 產(chǎn)生。所以,可以利用EPP的地址寫周期來產(chǎn)生SJAl000讀寫時序的地址鎖存部分,并用EPP并行口的數(shù)據(jù)讀寫周期來產(chǎn)生SJAl0

16、00讀寫時序的數(shù) 據(jù)讀寫部分。數(shù)據(jù)寫周期的時序如圖3所示,其步驟如下:(1)程序向EPP的DATA端口發(fā)送一個IO寫周期命令;(2)插入nWRITE信號,同時數(shù)據(jù)出現(xiàn)在并行端口數(shù)據(jù)線上;(3)當nWAIT信號變成低電平之后,插人數(shù)據(jù)選通信號;(4)端口等待來自外設的應答信號(取消nWAlT信號);(5)取消數(shù)據(jù)選通信號,EPP周期結(jié)束;數(shù)據(jù)讀周期的時序如圖4所示,其讀數(shù)據(jù)的步驟如下:(1)程序中向EPPDATA端口發(fā)送一個IO讀周期命令;(2)當nWAIT信號變成低電平之后,插入數(shù)據(jù)選通信號;(3)端口讀取數(shù)據(jù)位,取消數(shù)據(jù)選通信號;(4)端口等待來自外設的應答信號(取消nWAIT信號);(5)

17、EPP周期結(jié)束;(6)ISA周期結(jié)束。地址寫和地址讀周期除了把nDataStrobe信號替換成nAddStrobe之外完全一樣。相關(guān)引腳直值表如表4所示。53兩種設計的比較 實驗表明,采用軟件產(chǎn)生讀寫時序設計的硬件比較簡單,便于調(diào)試,但是程序編寫比較復雜(需編寫程序產(chǎn)生SJAl000的讀寫時序);用硬件產(chǎn)生讀寫時序 設計的硬件稍微復雜,硬件調(diào)試也復雜一些,但是應用程序的編寫要簡單一些(不用編寫程序產(chǎn)生SJAl000的讀寫時序),而且端口讀寫的速度也快得多。6設計中存在的幾個問題(1)PCA82C250第8腳與地之間的電阻Rs稱為斜率電阻,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式。把該

18、引腳直接與地相連,系統(tǒng)將處于高速工作方式。在這種方式下,為避免射頻干擾,建議使相關(guān)引腳的真值表表4nDatanAddrnWriteWRRDALE備注0l00l0數(shù)據(jù)讀,地址鎖存OlllO0數(shù)據(jù)寫,地址鎖存l000ll地址寫,地址選通lO1l0l地址讀,地址選通1l0ll0地址數(shù)據(jù)均無效等待llllll地址數(shù)據(jù)均無效,等待注:標加“”表示低電平有效。加字母“n”表示是并行口的引腳。因為地址和數(shù)據(jù)不能同時被選通,所以,真值表中就不列出它們同時被選通的情況。用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升和下降的斜率取決于Rs的阻值。實驗數(shù)據(jù)表明,15200k為Rj較理想的取值范圍。在這種方式下,可以使用平行線或雙絞線作總線。(2) SJAl000的TXl引腳懸空,RXl引腳的電位必須維持在約O5Vce上,否則將不能形成CAN協(xié)議所要求的電平邏輯。如果系統(tǒng)傳輸距離近,環(huán)境干 擾小,可以不用電流隔離,這樣可以直接把PCA82C250的VRFF端(約為05Vcc)與RXl腳相連,從而簡化電路。(3)必須將sJAl000的中斷信號取反之后才能接到PC機并行口的中斷引腳上,這樣才能保證硬件中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論