国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2009-03-02 07:00:50王洪義
電子產品世界 2009年2期
關鍵詞:字節(jié)中斷數(shù)據(jù)包

王洪義 李 堅 陶 濤

摘要:基于橋接芯片CP2102,設計了USB2.0-CAN的適配卡。系統(tǒng)采用USB和CAN接收中斷、通信同步的握手協(xié)議等方式,解決了USB的高速率和CAN的低速率、USB的大數(shù)據(jù)包與CAN的小數(shù)據(jù)包之間的矛盾,實現(xiàn)了USB數(shù)據(jù)與CAN數(shù)據(jù)之間的協(xié)議轉換和轉發(fā)。

關鍵詞:CP2102;CAN控制器;協(xié)議轉換;USB2.0

引言

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

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

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

系統(tǒng)結構

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

硬件實現(xiàn)

CP2102

CP2102是Silicon Labs公司的USB轉UART橋接芯片,具有集成度高、速度高、價格低廉、開發(fā)簡單等特點,能夠用最簡單的外部電路,最少的外部器件簡便地實現(xiàn)USB到UART的轉換。CP2102包含USB2.0全速功能控制器、USB收發(fā)器、振蕩器和帶有全部的調制解調器控制信號的異步串行數(shù)據(jù)總線(UART)。

微控制器

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

電路設計

系統(tǒng)電路如圖2所示,由CP2102、C8051F040、CAN驅動芯片PCA82C250以及光電隔離芯片6N137等組成。當在總線上檢測到終止信號時,CP2102將進人終止模式。在進人終止模式時,CP2102會發(fā)SUSPEND和SUSPEND信號。但是,SUSPEND和SUSPEND在CP2102復位期間會暫時處于高電平。為避免這種情況出現(xiàn),需要用一個10kΩ的電阻來確保在復位期間保持在低電平。PCA82C250是CAN收發(fā)器,可增加總線驅動能力,RS端接地相連,系統(tǒng)處于高速工作方式。6N137是光電隔離芯片,6N137實現(xiàn)智能節(jié)點與CAN總線之間的電氣隔離,不僅提高了節(jié)點的可靠性和系統(tǒng)的抗干擾能力,而且也保護了總線及總線上的其它節(jié)點??偩€兩端124Ω的電阻對,防止通信信號傳輸?shù)綄Ь€端點時發(fā)生反射。

USB與CAN之間協(xié)議轉換的實現(xiàn)

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

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

USB中斷后續(xù)處理任務

CP2102接收到數(shù)據(jù)或發(fā)送完成都會觸發(fā)中斷程序運行。中斷處理程序只需要簡單地通知此任務有中斷發(fā)生。這個任務的優(yōu)先級最高。此任務根據(jù)USB接口的不同中斷原因,通知其他任務進行后續(xù)的數(shù)據(jù)處理或轉發(fā)工作。

控制端點信息處理任務

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

CAN總線發(fā)送任務

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

CAN總線接收任務

當CAN總線接收到數(shù)據(jù)后,由于數(shù)據(jù)包最多只有8個字節(jié),因此可以一次放入USB接口芯片發(fā)送緩沖區(qū),由主機讀取。CAN接收中斷首先讀C8051F040中斷寄存器,清除中斷標志。然后觸發(fā)CAN-rCV信號量,使CAN接收任務得以運行。CAN接收任務然后等待USB發(fā)送完成中斷觸發(fā)USB-wr信號量,表示USB接口可以發(fā)送新的數(shù)據(jù)。由于USB接口緩沖區(qū)較大,并且發(fā)送速度快,CAN接收任務直接將CAN接收到的數(shù)據(jù),送入USB接口芯片CP2012的發(fā)送緩沖區(qū)。然后打開CAN接收中斷。

結語

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

猜你喜歡
字節(jié)中斷數(shù)據(jù)包
No.8 字節(jié)跳動將推出獨立出口電商APP
No.10 “字節(jié)跳動手機”要來了?
SmartSniff
簡談MC7字節(jié)碼
跟蹤導練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
基于Libpcap的網絡數(shù)據(jù)包捕獲器的設計與實現(xiàn)
視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
AT89C51與中斷有關的寄存器功能表解
FPGA內嵌PowerPC的中斷響應分析
微處理機(2012年4期)2012-06-13 11:32:24
红原县| 抚顺市| 太原市| 抚远县| 兰考县| 南充市| 固始县| 勃利县| 樟树市| 资中县| 会宁县| 景洪市| 元阳县| 乡城县| 边坝县| 靖宇县| 全南县| 遂川县| 虎林市| 治县。| 岳西县| 双鸭山市| 建宁县| 都江堰市| 钟祥市| 肥西县| 白河县| 原阳县| 清水河县| 遵化市| 开封市| 常山县| 大方县| 买车| 灌云县| 连江县| 岑巩县| 雷山县| 宜都市| 无棣县| 上饶县|