<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è) > 嵌入式系統 > 設計應用 > 基于USB接口的CAN總線(xiàn)適配器設計

基于USB接口的CAN總線(xiàn)適配器設計

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

現場(chǎng)總線(xiàn)作為二十世紀80年代發(fā)展起來(lái)的新興技術(shù),在工業(yè)現場(chǎng)已有了廣泛的應用。在比較有影響力的幾種現場(chǎng)總線(xiàn)中,以其突出的優(yōu)點(diǎn)不僅大量應用于工業(yè)現場(chǎng),而且在樓宇自動(dòng)化、智能終端設備等民用領(lǐng)域也有了長(cháng)足的發(fā)展。

現場(chǎng)總線(xiàn)網(wǎng)絡(luò )技術(shù)的實(shí)現需要與計算機相結合。以往網(wǎng)絡(luò )與計算機的連接采用RS232、ISA或PCI接口。但是隨著(zhù)計算機接口技術(shù)的發(fā)展,ISA接口已經(jīng)逐漸被淘汰;RS232接口數據傳輸率太低;PCI雖然仍是高速外設與計算機接口的主要渠道,但其主要缺點(diǎn)是占用有限的系統資源、設計復雜、需有高質(zhì)量的驅動(dòng)程序保證系統的穩定,且無(wú)法用于便攜式計算機的擴展。隨著(zhù)1.1、2.0規范的相繼制定,為外設與計算機的接口提出了新的發(fā)展方向。的主要特點(diǎn)有:外設安裝簡(jiǎn)單,可實(shí)現熱插撥;通訊速率高,USB1.1全速傳送速率為12Mbps,與標準串行端口相比,大約快100倍;支持多設備連接;提供內置電源。

本文給出一種在Windows2000下使用USB1.1協(xié)議實(shí)現的設計方法。整個(gè)設計主要開(kāi)發(fā)的固件及計算機的驅動(dòng)程序、應用程序,以達到用USB接口連接現場(chǎng)CAN總線(xiàn)網(wǎng)絡(luò )的目的。

1 硬件接口設計

適配器硬件電路由微控制器、CAN總線(xiàn)接口、USB總線(xiàn)接口和DC-DC隔離電源模塊等組成。原理框圖如圖1所示。

微控制器P89C51RD2是Philips公司生產(chǎn)的增強型MCS-51兼容單片機,片內集成64KB閃存和1KB擴展RAM,雙數據指針,4級中斷優(yōu)先級,7個(gè)中斷

內置看門(mén)狗,可編程時(shí)鐘輸出,在6時(shí)鐘模式下工作,速度是標準51單片機的兩倍。此時(shí)外部最高頻率可達20MHz。在高速、大程序容量、中小規模數據處理場(chǎng)合是一款非常理想的單片機型。

CAN總線(xiàn)接口使用Philips公司的獨立CAN總線(xiàn)控制器SJA1000,并由光耦6N136進(jìn)行總線(xiàn)隔離。SJA1000是一種獨立控制器,用于移動(dòng)目標和一般工業(yè)環(huán)境中的區域網(wǎng)絡(luò )控制,符合CAN2.0A和2.0B規范,最高速率可在達1Mbps。CAN總線(xiàn)收發(fā)器采用PCA82C250。

PDIUSBD12是Philips公司推出的全速USB接口器件,完全兼容USB1.1規范。圖1中D+引腳信號電平通過(guò)器件SoftConnect命令內部上拉,從而向主機表示為一個(gè)全速設備。EOT引腳自動(dòng)檢測USB接口的VBUS電壓以確定USB電纜是否連接到了主機。SUSPEND是雙向引腳,用以向微控制器指示器件是否掛起。當有USB總線(xiàn)事件發(fā)生時(shí),引腳向微控制器發(fā)出中斷信號。PDIUSBD12支持總線(xiàn)復用和非復用兩種并行接口模式,以方便連接不同類(lèi)型的微控制器。圖1中采用總線(xiàn)復用方式,當用奇數地址訪(fǎng)問(wèn)PDIUSBD12時(shí)被認為是命令,偶數地址訪(fǎng)問(wèn)則被認為是數據讀寫(xiě)。

各器件都需要外部時(shí)鐘信號,而且它們自身也都有可編程的時(shí)鐘輸出功能,這就給系統的時(shí)鐘設計帶來(lái)了便利。圖1中微控制器6時(shí)鐘運行模式下,外部為12MHz晶振。P89C51RD2的P1.1引腳產(chǎn)生6MHz方波作為PDIUSBD12的輸入時(shí)鐘;通過(guò)PDIUSBD12的SetMode寄存器編程使CLKOUT輸出時(shí)鐘頻率為24MHz,作為SJA1000的外部輸入時(shí)鐘。

2 軟件設計

軟件設計包括微控制器的固件設計和計算機端USB驅動(dòng)程序兩部分。

2.1 微控制器

是USB數據傳輸系統中終端設備程序設計的一個(gè)重要概念。微控制器通過(guò)固件是程序與計算機進(jìn)行數據交換。固件設計的目的是:使PDIUSBD12在USB上達到最大的傳輸速率;增加系統的可擴展性和硬件無(wú)關(guān)性。

固件要實(shí)現的內容:一是對SJA1000初始化,接收CAN總線(xiàn)送來(lái)的數據,收集CAN網(wǎng)絡(luò )狀態(tài)信息,并將主機的數據下發(fā)到CAN網(wǎng)絡(luò );二是對PDIUSBD12初始化,完成USB總線(xiàn)連接過(guò)程,并組織CAN網(wǎng)絡(luò )和主機之間的數據傳送。設計中采用KeilC51軟件編譯環(huán)境,C51和ASM混合編程方式。


上一頁(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>