<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CAN總線(xiàn)通信適配卡的設計與實(shí)現

CAN總線(xiàn)通信適配卡的設計與實(shí)現

作者: 時(shí)間:2012-03-13 來(lái)源:網(wǎng)絡(luò ) 收藏

圖3為雙口RAM的控制電路,其訪(fǎng)問(wèn)原理為:ISA總線(xiàn)共有24條地址線(xiàn),可尋址16MB存儲空間。地址線(xiàn)A12-A19接到比較器74LS688的P0-P7,比較器的Q0-Q5接一個(gè)六位的撥碼開(kāi)關(guān),Q6、Q7接高電平。74LS688的輸出接可編程邏輯器件GALl6V8。這樣,當P0-7=Q0-7時(shí),74LS688的輸出為低電平,地址選擇有效。另外,通過(guò)設置撥碼開(kāi)關(guān),用戶(hù)可以選擇雙口RAM在PC機存儲器中的初始地址。如置撥碼開(kāi)關(guān)為Q0-5=001011,則雙口RAM在ISA總線(xiàn)的初始地址為D0000H。這樣,通過(guò)可編程邏輯器件GALl6V8便可將1SA總線(xiàn)的各種信號進(jìn)行邏輯組合,以形成三個(gè)控制信號,從而實(shí)現PC機對雙口RAM的訪(fǎng)問(wèn)。這三個(gè)信號為:

P19=P1*P2*P3*P6*P7 RAM片選信號

P18=P1*P2*P3*P6*P7*P5 RAM讀信號

P17=P1*P2*P3*P6*P7*P4 RAM寫(xiě)信號

3.2微控制器電路

微控制器89C52是ATMEL公司的產(chǎn)品,它與MCS51系列CPU完全兼容,并帶有8k字節的在系統可編程FLASH MEMORY(最多可以擦寫(xiě)100次),同時(shí)帶有256B的片內RAM,因此一般不需要擴展片外ROM。

當89C52與通信時(shí),通常需要較大的數據緩沖區,因此該系統中擴展了8kB的片外RAM來(lái)滿(mǎn)足通信的需要。

在該適配卡中,有一些數據(如下層CAN節點(diǎn)的數目、CAN通信的初始化參數等)在適配卡斷電以后仍需要保存,因此應擴展一片EEPROM。本卡采用的是一個(gè)8k X 8位的非易失性存儲器2864,它的快速讀時(shí)間最大為250ns,存儲的數據可以保存10年。如果程序在運行過(guò)程中需要對適配卡的通信參數進(jìn)行重新配置,可通過(guò)調用PC機對CAN適配卡參數配置子程序來(lái)完成,并可在設置成功的同時(shí)將相應的參數存入2864,以備下次適配卡啟動(dòng)時(shí)調用。

考慮到電路調試和系統故障的處理,本卡設計了三種復位方式。其中上電復位方式為在PC機通電時(shí),使CAN適配器也同時(shí)復位;在調試出現問(wèn)題時(shí)可通過(guò)手動(dòng)復位鍵復位,以便解決調試中出現的問(wèn)題;第三種是軟件復位,該方式可通過(guò)調用PC機管理程序中的初始化模塊并通過(guò)軟件指令對CAN適配卡進(jìn)行復位。

3.3 CAN通信控制電路

CAN通信控制器選用PHILIPS公司的sJAl000,它具有完成高性能通信協(xié)議所要求的全部必要特征,支持CAN協(xié)議約定的4種不同幀格式(即數據幀、遠程幀、錯誤幀和超載幀),具有簡(jiǎn)單總線(xiàn)連接的SJAl000可完成物理層和數據鏈路層的所有功能,并在與CPU連接時(shí)可確保SJAl000以存儲器映像的外圍設備出現。為加強的差動(dòng)發(fā)送和接收能力,該電路采用了收發(fā)接口電路82C250。82C250的引腳8允許選擇高速、斜率控制和待機三種不同的工作方式,并可通過(guò)設置撥碼開(kāi)關(guān)切換不同的工作方式。在SJAl000與82C250之間接入光電耦合器可增強系統的抗干擾能力,光耦可采用高速光耦6N137,光耦兩側應采用5V的DC-DC隔離電源。圖4所示是一種CAN通信接口電路。

4 適配卡的軟件設計

適配卡主要承擔的是計算機和CAN節點(diǎn)之間的數據轉發(fā)任務(wù),因而其軟件設計也包括兩部分:其一是PC機端的應用程序,用于負責完成PC機和雙口RAM的通信。實(shí)際上,運行時(shí)需要開(kāi)發(fā)虛擬設備驅動(dòng)程序(VxD)來(lái)完成對雙口RAM的讀寫(xiě)、對雙口RAM中斷的處理以及和應用程序的通信。其二是卡上單片機端的程序設計,該程序采用FranklinC51編寫(xiě),可完成單片機與雙口RAM以及與CAN控制器之間的通信。圖5為該適配卡的簡(jiǎn)化程序流程圖。

參考文獻

1.鄔寬明.CAN總線(xiàn)原理和應用系統設計.北京航空航天大學(xué)出版社,1996.11

2.張旭東,廖先蕓.IBM 微型機實(shí)用接口技術(shù).科學(xué)技術(shù)文獻出版社,1993

3.IDT Company,IDT7130SA/LA Specification,2000.6

4.Philips Semiconductor Company,CAN Specification[Version 2.0],1999.9

5.胡國鵬,等.CAN總線(xiàn)及其PC適配卡設計.工業(yè)控制計算機.2001.1


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>