《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于USB的CAN總線智能適配卡的軟硬件設計

基于USB的CAN總線智能適配卡的軟硬件設計

2009-02-12
作者:季厭浮

  摘 要: 采用SJA1000作為CAN控制芯片,使用PDIUSBD12作為USB的控制芯片,并利用AT89C52作為微控制器,設計了基于USB的CAN總線智能適配卡的硬件結構。在此基礎上,設計了適配卡的軟件實現方案。針對CAN總線容易受到外界干擾的弱點,使用6N137進行信號隔離。
  關鍵詞: USB接口;CAN總線;微控制器;智能適配卡

?

  隨著信息技術的飛速發展,各種數據的實時采集和處理在現代工業控制中已經成為必不可少的部分,這就要求現場設計的接口簡單靈活且具有較高的數據傳輸率。控制器局域網CAN(Controller Area Network)總線屬于現場總線的范疇,是一種具有高可靠性、支持分布式控制和實時控制的串行通信總線標準。傳統的適配卡設計方案中,CAN總線網絡與計算機的連接通常采用的是RS232、ISA或者PCI接口,但是隨著計算機接口技術的迅速發展,ISA接口已經逐漸被淘汰。RS232接口數據傳輸率太低,PCI接口雖然可以實現高速傳輸,但其主要缺點是占用有限的系統資源,設計復雜,并且無法用于便攜式計算機的擴展,必須有高質量的驅動程序保證系統的穩定。USB技術正是順應接口技術發展而提出的一種快速、雙向、同步傳輸、廉價的并且可以進行熱插拔的通用串行總線。
  本文設計了基于USB接口的CAN總線適配卡的硬件結構和軟件實現方案。該適配卡既可以對數據起到轉發的作用,即收集CAN總線上各個節點的數據,轉發給上位機,并把上位機的命令和數據發給各節點;也可以完成對CAN總線上的用戶系統的部分監控管理工作,故又被稱為智能適配卡[1]。通過在礦井等特殊現場環境下的實踐應用,證明該適配卡具有良好的抗干擾能力和高速的傳輸性能。
1 智能適配卡的硬件結構
  適配卡的硬件電路主要由微控制器、CAN總線接口、USB總線接口和信號隔離模塊等部分組成,如圖1所示。

?


1.1 AT89C52微控制電路
  AT89C52是一個低電壓、高性能CMOS 8位單片機,片中內置有8KB可反復擦寫的Flash存儲單元和256B隨機存取數據存儲器RAM,功能強大。AT89C52是該接口電路的控制核心,其中P0、P2口用作16位數據I/O口,P1、P3口用作控制。
  微控制器負責對USB設備控制器和CAN控制器進行控制。在微控制器內部駐留有USB通信協議和CAN通信協議,完成USB通信協議和CAN總線通信協議轉換,實現USB接口和CAN接口通信數據的透明傳輸[2]
1.2 USB接口電路
  本設計中USB控制芯片采用Philips公司的PDIUSBD12。該芯片是一款性價比很高的USB器件,內部集成了串行接口引擎SIE、存儲器管理單元MMU、集成RAM、模擬收發器以及電壓調整器,可與任何外部微控制器實現高速數據傳輸的并行接口(2MB/s)。提供3個端點,其中主端點(端點2)的雙緩沖配置增加了數據吞吐量并輕松實現實時數據傳輸。
  PDIUSBD12與微控制器的接口有二種方式:多路地址/數據總線方式、單地址/數據總線方式。在本設計中,采用的是前一種方式,即使用了AT89C52的INT0、ALE、WR、RD和P0口,A0腳接地,當PDIUSBD12接收到主機的有效信息時,會產生一個中斷通知AT89C52進行處理。若微控制器的輸出地址為奇數,則表示對PDIUSBD12發送指令;若輸出地址為偶數,則表示對PDIUSBD12進行數據傳輸。AT89C52將數據經PDIUSBD12的并行接口送入FIFO存儲器。對微控制器而言,PDIUSBD12看起來就像1個帶8位數據總線和1個地址位的存儲器件。由于在USB的信號傳遞過程中會摻雜進瞬間的高壓噪聲,這些噪聲對USB口的收發電路將產生致命的危害,因此需要對這些噪聲電壓進行抑制。在USB接口電路設計中,使用了SN75240,它可以對USB接口中的不正常電壓進行有效的抑制,以保證硬件設備的安全[3]
1.3 CAN總線電路
  在本設計中,CAN總線控制器采用Philips公司生產的SJA1000,它作為一個發送、接收緩沖器,實現主控制器和總線之間的數據傳輸。CAN總線控制器接口芯片采用PCA82C250,它是CAN總線控制器和物理總線的接口,可以對總線提供不同的發送能力和對CAN控制器提供不同的接收能力。為了增強CAN總線的抗干擾能力,SJA1000的TX0和RX0并不是直接與PCA82C250的TXD和RXD相連,而是通過高速光電耦合器6N137后與PCA82C250相連。這樣就很好地實現了總線上各CAN節點間的電氣隔離,如圖2所示。不過應注意:光耦部分電路所采用的兩個電源Vcc和Vdd必須完全隔離,否則采用光耦就會失去意義。電源的完全隔離可采用小功率電源隔離模塊,或帶+5V隔離輸出的開關電源模塊實現。

?

2 智能適配卡的軟件設計
  適配卡的軟件設計主要包括CAN通信軟件設計、USB設備端通信軟件設計、USB設備驅動程序設計和應用程序設計四大部分。
2.1 CAN通信軟件設計
  CAN通信軟件設計主要包括三大部分:初始化CAN控制器SJA1000、發送數據模塊和接收數據模塊。同時還包括一些數據溢出中斷及幀出錯的處理。初始化CAN控制器SJA1000主要用來實現CAN控制器工作時的參數設置,這些初始化的內容包括硬件使能CAN控制器、設置CAN報警界限、設置CAN總線波特率、設置中斷工作方式、設置CAN驗收過濾器的工作方式、設置CAN控制器的工作模式等[4]。這些功能主要是通過設置各寄存器予以實現。
  微控制器AT89C52將USB總線送來的數據轉換為符合CAN發送幀格式的數據,通過調用CAN發送數據模塊將該數據從CAN控制器SJA1000轉發。微控制器AT89C52調用CAN接收數據模塊接收來自CAN總線的數據,并把數據轉換為符合USB發送幀格式的數據,將該數據通過PDIUSBD12進行轉發[5]。CAN通信軟件整體工作流程如圖3所示。

?


2.2 USB設備端通信軟件設計
  USB設備端通信軟件設計主要包括PDIUSBD12的硬件驅動層、USB接口控制驅動層、USB協議層和USB應用層軟件設計[6]
2.2.1 PDIUSBD12的硬件驅動層軟件設計
  PDIUSBD12硬件驅動層主要任務是初始化PDIUSBD12與AT89C52連接的配置,復位PDIUSBD12并建立PDIUSBD12與AT89C52的通信函數。
2.2.2 USB接口控制驅動層軟件設計
  USB接口控制驅動層的主要任務是實現PDIUSBD12的各種功能,包括地址使能、讀取端點數據、向端點寫入數據和設置DMA等,該層中的功能函數通過調用PDIUSBD12硬件驅動層的各函數予以實現。
2.2.3 USB協議層軟件設計
  USB協議層的主要任務是處理標準的USB設備請求以及特殊的廠商請求。USB主機通過標準USB設備請求,可設定和獲取USB設備的有關信息,完成USB設備的枚舉。所有的請求都是通過PDIUSBD12的端點0接收和發送SETUP包來完成。
2.2.4 USB應用層軟件設計
  PDIUSBD12支持所有的四種USB數據傳輸方式。本文適配卡的設計中使用了控制傳輸、中斷傳輸和批量傳輸。控制傳輸只用來傳遞控制信息,固定使用端點0;中斷傳輸使用端點1,用來傳送CAN網絡狀態信息;批量傳輸使用端點2,用來實現主機和CAN網絡節點之間的數據傳送。
  PDIUSBD12具有完善的中斷機制,微控制器AT89C52可以通過讀PDIUSBD12的中斷寄存器獲得總線事件。為了提高USB應用層軟件的運行效率,主程序對系統進行初始化后開放中斷,在中斷服務程序中對事件進行分析和必要的處理,并設置相應的變量標志和數據緩沖區。主程序則循環查詢變量標志,調用相應的子程序進行處理。這種程序結構使得主程序能夠在前臺處理各種數據傳送任務,同時又可以通過中斷在后臺及時處理總線事件,有力地確保了最佳的傳輸速率和更好的軟件結構,同時簡化了編程和調試[7]。PDIUSBD12中斷服務程序如圖4所示。

?

2.3 USB設備驅動程序設計
  USB設備驅動程序采用的是WDM( Windows Driver Mode)
  類型。WDM屬于操作系統的內核模式,其驅動程序由運行于內核模式的系統代碼組成。WDM設備驅動模型與先前的VXD型驅動程序相比,降低了所需驅動程序的數量和復雜性,簡化了驅動程序的開發[8]
  本文采用DriverStudio開發工具進行開發。DriverStudio包含VtoolsD、softICE和DriverWork等工具,通過DriverWorks的開發向導Driver Wizard生成驅動程序框架,在其生成的代碼框架中再加入對設備上LED燈的控制操作,實現一個完整的USB設備驅動程序。在生成驅動程序的同時,可以同時生成驅動程序的測試程序。編譯運行DriverWorks生成的驅動測試程序,能夠發現此設備驅動運行是否良好,并能夠實現對設備上的LED燈的控制。
2.4 應用程序設計
  對于廣大用戶而言,與系統的交互是通過應用程序實現,而且整個系統的主要數據處理都在這里完成。因此,運行效率高、界面友好、具有強大數據分析和處理的應用程序的設計,也是系統設計上一個不容忽視的關鍵因素。應用程序設計的關鍵是實現從USB外設讀取或發送特定數量的數據,本設計中采用Visual C++6.0作為應用程序的開發環境。
  CAN總線與USB總線作為流行的、先進的總線技術都具有廣泛的應用和發展前途。本設計通過結合USB與CAN的優點連接擴展了USB在工業控制中的功能,同時大大簡化了工業控制與PC機之間的數據通信,具有十分廣泛的應用價值。本設計已經完成,并在礦井下數據傳輸中得到應用,取得了良好的現場應用效果。


參考文獻
[1] 張延宇,曹云俠. 基于USB的CAN適配卡的設計與實現[J].微計算機信息,2006,22(1):6-8.
[2] ?高強,任恩恩,張濤. CAN總線的PCI接口通信卡設計[J].電子技術應用,2007,33(7):122-124.
[3] ?周立功. PDIUSBD12固件編程與驅動開發[M]. 北京:北京航空航天大學出版社,2003.
[4] ?律德才,馬峰. CAN總線控制器SJA1000的原理及應用[J].電測與儀表,2002,(4):57-59.
[5] ?CENA G, VALENZANO A.FastCAN: A high-performance?enhance CAN-like network[J]. IEEE Transactions on
Industrial? Electronics, 2000,47(4):951-952.
[6] ?高軍,劉曉莉,趙延明.基于LPC2292的CAN總線USB接口適配器的設計[J].化工自動化及儀表,2007,34(4):49-52.
[7] ?張紅彩,賴聯琨,姜學東.USB總線在CAN接口卡上的應用與設計[J].自動化與儀表,2006,(3):27-30.
[8] ?CANT C. Windows WDM 設備驅動程序開發指南[M].北京:機械工業出版社,2000.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区福利在线| 国产精品一区二区在线观看| 99精品视频网| 欧美日韩在线电影| 欧美一区二区福利在线| 亚洲激情偷拍| 日韩午夜激情| 亚洲国产精品久久久| 欧美性猛交99久久久久99按摩| 亚洲欧美国产77777| 欧美一级久久| 亚洲欧美在线免费观看| 亚洲国产影院| 国产精品网站一区| 老鸭窝亚洲一区二区三区| 日韩一级成人av| 亚洲欧美日韩直播| 亚洲福利视频网站| 一色屋精品视频在线看| 欧美三区在线视频| 久久综合伊人77777蜜臀| 久久久国产午夜精品| 一区二区三区四区五区精品| 午夜精品在线看| 亚洲欧美亚洲| 欧美在线二区| 一区二区三区黄色| 韩国一区电影| 欧美视频日韩视频在线观看| 欧美四级在线观看| 国产精品国产三级国产专播品爱网 | 亚洲视频1区| 国产九九视频一区二区三区| 国产精品日韩一区二区三区| 国产色婷婷国产综合在线理论片a| 另类欧美日韩国产在线| 久久伊人亚洲| 午夜精品国产精品大乳美女| 亚洲精品三级| 亚洲欧洲久久| 国产在线精品二区| 国产精品二区在线观看| 国产精品激情| 国产一区二区三区av电影| 欧美午夜久久| 国产日韩精品一区二区三区| 欧美日韩精品中文字幕| 免费成人你懂的| 欧美在线免费观看视频| 亚洲一区二区免费在线| 久久精品官网| 午夜一级久久| 亚洲日本va在线观看| 亚洲一区国产视频| 久久久久一区二区三区| 亚洲欧美在线播放| 久久久久久尹人网香蕉| 欧美va亚洲va国产综合| 久久久久久久久久久成人| 欧美大尺度在线观看| 久久久天天操| 欧美日韩不卡| 国产一区久久| 99热免费精品在线观看| 久久av一区二区三区亚洲| 亚洲校园激情| 夜夜嗨av一区二区三区四季av| 亚洲国产高清在线| 亚洲婷婷在线| 亚洲日本黄色| 久久成人精品一区二区三区| 中日韩美女免费视频网址在线观看| 亚洲欧洲视频| 亚久久调教视频| 亚洲欧洲av一区二区| 鲁鲁狠狠狠7777一区二区| 欧美特黄一级大片| 在线成人激情视频| 亚洲国产精品高清久久久| 亚洲亚洲精品在线观看| 91久久久亚洲精品| 久久国产精彩视频| 欧美视频一区在线观看| 亚洲国产高清aⅴ视频| 欧美一区二区视频免费观看| 亚洲一区二区三区在线看| 免费亚洲一区二区| 国产网站欧美日韩免费精品在线观看 | 中文无字幕一区二区三区| 久久成人免费电影| 亚洲欧美一区二区三区极速播放| 免费成人美女女| 国产亚洲欧美中文| 亚洲一区亚洲二区| 亚洲制服欧美中文字幕中文字幕| 91久久精品国产91久久| 欧美在线在线| 国产精品久久久久久久第一福利| 亚洲三级国产| 在线午夜精品自拍| 一本色道久久| 午夜日韩视频| 欧美日韩一区二区高清| 最新国产成人av网站网址麻豆| 久久国内精品视频| 久久精品午夜| 国产日韩欧美自拍| 午夜亚洲性色福利视频| 欧美一区二区在线| 国产精品欧美精品| 黄色成人片子| 欧美在线视频a| 欧美一区二区免费观在线| 国产精品电影网站| 99人久久精品视频最新地址| 日韩一级大片在线| 欧美黑人在线观看| 国产精品视频99| 一区二区三区四区在线| 亚洲婷婷在线| 欧美三区免费完整视频在线观看| 亚洲精品一区二区三| 99热这里只有精品8| 欧美寡妇偷汉性猛交| 亚洲精品久久久久久久久久久久久 | 亚洲欧美精品在线观看| 亚洲午夜一区二区| 欧美视频不卡中文| 在线中文字幕日韩| 午夜一区二区三区不卡视频| 欧美亚韩一区| 亚洲宅男天堂在线观看无病毒| 香蕉av777xxx色综合一区| 国产精品日日摸夜夜摸av| 亚洲男人av电影| 久久黄色级2电影| 国产在线拍揄自揄视频不卡99| 久久激情视频| 欧美成人精品激情在线观看| 在线看日韩欧美| 这里只有精品视频| 亚洲欧美日韩国产另类专区| 国产精品一区二区三区四区| 香蕉久久一区二区不卡无毒影院| 久久久欧美精品sm网站| 亚洲国产精品激情在线观看| 一本一本久久a久久精品综合妖精| 欧美日韩在线播放一区| 亚洲欧美国产制服动漫| 久久久噜噜噜久久中文字幕色伊伊| 永久免费毛片在线播放不卡| 日韩一级免费观看| 国产精品久久久久久福利一牛影视| 午夜影院日韩| 欧美va天堂va视频va在线| 日韩西西人体444www| 欧美一区二区三区视频免费播放| 黑人巨大精品欧美一区二区小视频 | 亚洲一区国产视频| 国产日韩三区| 亚洲乱码日产精品bd| 国产精品成人一区二区三区夜夜夜 | 亚洲福利视频专区| 在线视频亚洲一区| 国产精品麻豆成人av电影艾秋| 亚洲影音先锋| 乱人伦精品视频在线观看| 日韩一级网站| 久久久久国色av免费看影院| 91久久精品网| 午夜精品一区二区三区在线视| 好看的日韩视频| 亚洲午夜视频| 伊人激情综合| 亚洲制服av| 永久久久久久| 亚洲欧美在线高清| 亚洲成人资源| 欧美在线视频一区| 亚洲精品一二三| 久久精品国产清高在天天线| 亚洲靠逼com| 99精品视频免费观看| 国产精品亚洲综合久久| 亚洲精品午夜| 国产一区亚洲| 亚洲在线一区| 亚洲国产精品传媒在线观看| 久久成人免费网| 99v久久综合狠狠综合久久| 久久综合图片| 亚洲网站啪啪| 欧美日韩不卡一区| 亚洲国产另类精品专区 | 一本久道久久久| 欧美成人免费在线观看| 欧美亚洲综合网| 欧美日韩在线视频一区二区| 91久久精品日日躁夜夜躁国产| 国产久一道中文一区|