在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

高速USB2.0-CAN適配卡的應用及實現方案

牽手一起夢 ? 來源:電子產品世界 ? 作者:王洪義;李堅;陶濤 ? 2021-05-05 17:02 ? 次閱讀

作者:王洪義;李堅;陶濤

控制器局域網(CAN)是德國BOSCH公司于1986年為解決汽車內部測量與執行部件之間的數據通信而開發的一種串行數據通信協議。它的網絡模型結構包括物理層、數據鏈路層和應用層,以雙絞線為信號傳輸介質,通信速率最高可達1Mbps ( 40m),直接傳輸距離最遠可以達到10km/5Kbit/s,每條總線可掛接設備多達110個,特別適用于實時性要求很高的網絡。由于其多主的工作方式、優良的穩定性和實時性能、成熟的仲裁和同步技術,加上開放式總線結構、短報文高速通訊、遠程通訊能力、超強的糾錯和擴展功能,以及控制簡單、應用成本低等優點,已經被越來越多地應用到廣大網絡控制系統領域,并被公認為最有前途的現場總線技術之一。

USB(通用串行總線),是1995年以Intel為首的7家公司推出的一種協議規范,用以實現將將計算機的各種外圍接口統一起來,用帶四根線(兩根電源線和兩根數據線)的接口來實現任意設備和PC機間的通訊。具有即插即用,軟硬件支持廣泛、低功耗、價格低、數據傳輸率高、擴充性好、使用靈活、硬件結構標準化高和完備的總線拓撲結構等特點,因此USB自問世以來,顯示出了強大的生命力,在以計算機為上位機的控制系統中,得到廣泛的應用。

隨著計算機技術的飛速發展,PC這個已經把USB采納為通用總線和通用接口標準的控器幾乎已經成為各個領域操控終端的首要選擇。通過USB接口,在安裝必要的應用軟件和驅動程序之后,PC能接入到各個控制系統中去。因此,為了提高應用的高效率、操控的便利性,把USB的通用型和CAN的專業性結合起來,達到優勢互補,有必要設計一種高速USB2.0-CAN適配卡,以實現USB2.0通信協議與CAN總線通信協議的轉換。

系統結構

系統主要包含三部分:微控制器、USB接口和CAN接口的控制部分(見圖1)。其中C8051F040作為系統微控制器。USB接口功能控制器采用CP2102 USB轉UART橋接芯片。其中C8051F040作為CAN總線控制器負責與CAN網絡交換數據,CP2102實現USB口信息格式與串口格式的轉換,最后由C8051F040操作串口與CP2102交換數據,實現USB2.0到CAN總線協議的轉換。

圖1 USB2.0-CAN適配卡框圖

硬件實現

CP2102

CP2102是Silicon Labs公司的USB轉UART橋接芯片,具有集成度高、速度高、價格低廉、開發簡單等特點,能夠用最簡單的外部電路,最少的外部器件簡便地實現USB到UART的轉換。CP2102 包含USB2.0全速功能控制器、USB收發器、振蕩器和帶有全部的調制解調器控制信號的異步串行數據總線(UART)。CP2102的內部結構如圖2所示,內置有與計算機通信的協議,工作時,提供的免費的實用COM口器件驅動器允許一個基于CP2102的產品作為的一個口使用,也就是通常所說的產生一個虛擬的口,電路無需任何外部的USB器件即可工作,工作特性可以滿足CAN總線的傳輸波特率要求。

圖2 CP2102的內部結構圖

微控制器

系統采用SiliconLaboratories公司推出的混合信號系統級單片機C8051F040作為系統的控制器,內部集成的CAN控制器包括一個CAN內核、消息RAM(獨立于CIP-51內核)、消息處理單元、控制寄存器等但是沒有提供物理層的驅動器,要實現與CAN總線的接口,還需接口控制器,例如82C250、TJA1050等。數據接收和濾波都是由CAN控制器完成的,不需要CIP-51內核的參與,通過這種方式使CAN通訊時占用的系統資源最小。CIP-51內核通過其內部的特殊功能寄存器來配置CAN控制器以及實現數據交互。

電路設計

系統電路如圖3所示,由CP2102、C8051F040、CAN驅動芯片PCA82C250以及光電隔離芯片6N137等組成。CP2102的RTX、TXD引腳分別是串口的接收、輸出端,與單片機的對應引腳相連。USB的終止和恢復信號支持功能便于CP2102器件以及外部電路的電源管理。當在總線上檢測到終止信號時,CP2102將進人終止模式。在進人終止模式時,CP2102會發SUSPEND和信號。但是,SUSPEND和在CP2102復位期間會暫時處于高電平。為避免這種情況出現,需要用一個l0kΩ的電阻來確保在復位期間保持在低電平。PCA82C250是CAN收發器,可增加總線驅動能力,Rs端接地相連,系統處于高速工作方式。6N137是光電隔離芯片,CAN總線信號CANTX和CANRX從C8051F040出來后先分別經過高速光耦6N137進行電氣隔離,再經過CAN總線控制器接口芯片82C250驅動,然后接到CAN數據線上。6N137實現智能節點與CAN總線之間的電氣隔離,不僅提高了節點的可靠性和系統的抗干擾能力,而且也保護了總線及總線上的其它節點??偩€兩端124Ω的電阻對,防止通信信號傳輸到導線端點時發生反射。

圖3 適配卡的硬件設計

USB與CAN之間協議轉換的實現

設計在充分遵守USB和CAN協議的基礎上,實現了USB數據與CAN數據之間的協議轉換和轉發。在設計過程中,USB的高速率和CAN的低速率、USB的大數據包和CAN的小數據包之間存在著矛盾,必須認真解決,否則可能會造成數據丟失,協議轉換不可靠,設備工作不穩定。本設計中USB和CAN都采用了接收中斷方式,將USB和CAN的數據包先存儲下來,作為緩沖再進一步處理。在中斷服務程序的數據接收時,只有將數據準確地收取下來,才將接收緩沖區釋放,在此之前拒絕接收新的數據。在數據發送時,先確認發送緩沖區可用才寫入數據。由于兩端接口芯片都有內部的發送和接收緩沖區,主程序的主要任務就是完成數據的轉發,以及提供通信同步的握手協議,防止數據丟失和順序錯誤。

對于CAN總線傳輸速率,USB總線速率要高得多,128字節的緩沖區也比CAN總線芯片8字節緩沖區大得多,因此,向CAN接口發送數據需要完成拆包和重新打包的任務,屬較慢操作,采用定時查詢式發送。CAN接收任務每次直接轉發CAN接口收到的8字節數據到USB接口發送緩沖區,采用兩個信號量(CAN-rcv,USB-wr)完成數據同步操作。數據轉發工作共有4個任務協調配合完成:

(1) USB中斷后續處理任務

CP2102接收到數據或發送完成都會觸發中斷程序運行。中斷處理程序只需要簡單地通知此任務有中斷發生,以盡量減少中斷關閉的時間。因此,這個任務的優先級最高,并且一旦開始運行不再等待其它事件,盡快處理完成。此任務根據USB接口的不同中斷原因,通知其他任務進行后續的數據處理或轉發工作。

(2)控制端點信息處理任務

當USB接口[5]接收到主機發來的USB協議信息時,此任務得到通知。根據主機的要求,按照USB協議規范的數據格式對主機應答。主要用于USB設備枚舉階段,與主機之間的信息交換。其它時間,此任務不占用處理器時間。

(3) CAN總線發送任務

當USB接口有新的數據[6]要轉發到CAN總線時,USB中斷后續處理任務通知此任務運行。讀出USB芯片接收緩沖區中的數據到內存緩沖區,然后分解成小于等于8字節數據包,增加CAN總線協議數據包頭,送入C8051F040的發送緩沖區。微處理器的主要處理時間就是USB數據包的分解和重新打包發送。此任務占用處理器的時間最長。CAN發送任務每次等待USB接收中斷觸發USB_ rd信號量后,開始讀取CP2102接收緩沖區數據到內存數組Ep2out_Buf[128],然后采用查詢式發送方式,將數據送到C8051F040的發送緩沖區,每次8字節。在查詢過程中,如果C8051F040處于正在發送中,將任務休眠3個時鐘嘀嗒《5ms),然后再次查詢,避免長時間占用處理器。

(4) CAN總線接收任務

當CAN總線接收[6]到數據后,由于數據包最多只有8個字節,因此可以一次放入USB接口芯片發送緩沖區,由主機讀取。此任務很少占用處理器時間。主要是為了協調CAN總線與USB總線之間數據轉發的同步,使數據包按照原來的順序接收到,并且不覆蓋尚未發送的上一個數據包,避免數據丟失。CAN接收中斷首先讀C8051F040中斷寄存器,清除中斷標志。然后觸發CAN-rcv信號量,使CAN接收任務得以運行。CAN接收任務然后等待USB發送完成中斷觸發USB-wr信號量,表示USB接口可以發送新的數據。由于USB接口緩沖區較大,并且發送速度快,CAN接收任務直接將CAN接收到的數據,送入USB接口芯片CP2012的發送緩沖區。然后打開CAN接收中斷。

結語

設計在充分遵守USB和CAN協議的基礎上,USB和CAN都采用了接收中斷方式,通過通信同步的握手協議,實現了USB數據與CAN數據之間的協議轉換和轉發,很好的解決了USB的高速率和CAN的低速率、USB的大數據包與CAN的小數據包之間的矛盾,能夠保證數據完整,協議的可靠轉換。使CAN的專業化操作和實踐通過USB變得更加靈活方便。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16384

    瀏覽量

    178356
  • 接口
    +關注

    關注

    33

    文章

    8617

    瀏覽量

    151311
  • usb
    usb
    +關注

    關注

    60

    文章

    7951

    瀏覽量

    264918
收藏 人收藏

    評論

    相關推薦

    基于VxWorks操作系統實現PC/104-CAN適配卡的驅動系統設計

    PC/104-CAN適配卡主要由CAN控制器(SJA1000)、光電隔離(6N137),收發驅動器(82C250)及譯碼電路組成。編程主要了解的是控制器SJA1000。CAN
    的頭像 發表于 09-08 17:51 ?3731次閱讀
    基于VxWorks操作系統<b class='flag-5'>實現</b>PC/104-<b class='flag-5'>CAN</b><b class='flag-5'>適配卡</b>的驅動系統設計

    求一種CAN適配卡驅動程序的設計方案

    CAN總線技術CAN適配卡驅動程序的設計與實現基于WinCE環境的CAN適配卡驅動程序的設計與
    發表于 04-23 06:43

    如何利用VxWorks操作系統實現PC/104-CAN適配卡的驅動系統設計

    求一種基于VxWorks操作系統實現PC/104-CAN適配卡的驅動系統設計
    發表于 04-28 06:17

    請問怎樣去設計一種USB2.0高速主機適配卡

    怎樣去設計一種USB2.0高速主機適配卡?如何對USB2.0高速主機適配卡進行測試驗證?
    發表于 05-28 06:39

    CAN總線分布式系統適配卡和控制單元設計

    介紹CAN總線分布式系統中適配卡和控制單元的硬件組成及軟件的設計方法, 給出硬件原理圖;詳細分析SJA1000的初始化方法、驗收濾波器的原理和使用方法、通信程序的設計,并給出
    發表于 04-08 09:51 ?27次下載

    基于USBCAN適配卡的設計與實現

    本文論述了CAN 總線系統中CAN 適配卡的重要作用,在分析其他CAN 適配卡實現
    發表于 08-05 09:16 ?16次下載

    PC-USB2.0-CAN轉接及其AVR GCC語言實現

    系統使用CP2102 和MCP2510 實現PC-USB2.0-CAN 轉接。系統通過CP2102 實現USB2.0 接口,通過MCP25
    發表于 08-22 09:53 ?16次下載

    基于CP2102高速USB2.0-CAN適配卡的設計

    基于CP2102高速USB2.0-CAN適配卡的設計 基于橋接芯片CP2102,設計了USB2.0-CAN適配卡。系統采用
    發表于 04-22 18:34 ?3391次閱讀
    基于CP2102<b class='flag-5'>高速</b><b class='flag-5'>USB2.0-CAN</b><b class='flag-5'>適配卡</b>的設計

    基于WinCE環境的CAN適配卡驅動程序的設計與實現

    基于WinCE環境的CAN適配卡驅動程序的設計與實現 WinCE是一種為多種嵌入式系統和產品設計的緊湊、高效、可升級的操作系統,WinCE 采用標準模式,其最主要的特征:為有
    發表于 10-26 09:04 ?1045次閱讀

    NI針對嵌入式系統開發單板式RIO適配卡

    NI針對嵌入式系統開發單板式RIO適配卡 美國國家儀器(NI)發布4款擴大作業溫度的NI單板式(Single-Board) RIO適配卡,可在-40℃~85℃的作業環境溫度范圍下運作。這些適配卡
    發表于 12-23 08:43 ?1438次閱讀

    基于PIC單片機的RS-232轉CAN通信適配卡設計

    基于PIC單片機的RS-232轉CAN通信適配卡設計 CAN總線-控制器局部網(CAN)國際標準(ISO11898)。CAN總線與一般的通
    發表于 01-27 16:24 ?1478次閱讀
    基于PIC單片機的RS-232轉<b class='flag-5'>CAN</b>通信<b class='flag-5'>適配卡</b>設計

    發電機狀態監測儀中CAN適配卡的設計方案

    發電機狀態監測儀中CAN適配卡的設計方案 摘要:文中介紹了發電機狀態監測儀中CAN智能適配卡的功能和硬件組成,針對ISA和哼單片機同時對雙
    發表于 03-03 19:37 ?768次閱讀
    發電機狀態監測儀中<b class='flag-5'>CAN</b><b class='flag-5'>適配卡</b>的設計<b class='flag-5'>方案</b>

    關于PCI9052在多功能CAN適配卡中的應用研究

    關于PCI9052在多功能CAN適配卡中的應用研究 0 概述PCI總線是一種獨立于CPU的局部總線,實現PCI接口的方案一般有兩種:采用可編程邏輯器件和專用總線接口器件。
    發表于 04-08 15:02 ?1134次閱讀
    關于PCI9052在多功能<b class='flag-5'>CAN</b><b class='flag-5'>適配卡</b>中的應用研究

    基于WinCE環境的CAN適配卡驅動程序的設計與實現

    本文簡要介紹了嵌入式實時操作系統WinCE環境下驅動程序的設計原理和CAN總線技術并詳細分析了依托PC/104總線的CAN適配卡底層驅動程序的設計與實現
    發表于 03-29 14:25 ?3次下載

    基于uPD720100控制器實現新型USB2.0高速主機適配卡的應用方案

    USB界面通過USB主控制器與計算機主機系統相連接?USB主控制器不但提供與主機的PCI總線接口,同時也包含根集線器?根集線器可提供一個或多個連接點用于USB設備的連接,從而使主機操作
    的頭像 發表于 06-15 15:20 ?2969次閱讀
    基于uPD720100控制器<b class='flag-5'>實現</b>新型<b class='flag-5'>USB2.0</b><b class='flag-5'>高速</b>主機<b class='flag-5'>適配卡</b>的應用<b class='flag-5'>方案</b>
    主站蜘蛛池模板: 综合婷婷| 国产精品视频永久免费播放| 久久国产影视| 国产免费人人看大香伊| 色视频在线免费观看| 男女视频在线播放| 日本免费不卡一区| 亚洲jizzjizz中国妇女| 天天舔天天干天天操| 激情综合色综合久久综合| 美女网色站| 日韩欧美视频一区| 免费一级视频在线播放| 国内黄色一级片| 美女被色| 国产成人精品一区二区仙踪林| video另类蛇交| 国产特黄一级毛片特黄| www我要色综合com| 国产高清免费在线| 在线免费国产视频| 久久天天躁狠狠躁夜夜躁综合| 婷婷在线观看香蕉五月天| 不卡一级毛片免费高清| 天天摸天天草| 操到喷水| 福利视频一区二区牛牛| 色天天干| 特黄视频| 手机看片1024精品日韩| 成人午夜网站| 免费观看黄视频| 色五夜婷婷| 好色999| 国产一区在线播放| 午夜激情福利视频| 国产理论精品| se色成人亚洲综合| 男人j进女人j视频| 色老二精品视频在线观看| 国产专区青青草原亚洲|