音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于USB技術(shù)的CAN總線適配器的研究與開發(fā)

出處:comwoo 發(fā)布于:2007-04-29 09:39:43

基于USB技術(shù)的CAN總線適配器的研究與開發(fā)

福建師范大學(xué) 王娜

引言

CAN總線是德國(guó)BOSCH公司在20世紀(jì)80年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線,是一種多主總線系統(tǒng),通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,其通信速率可達(dá)1Mbps。在CAN總線通信控制器中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括零位的插入/刪除、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級(jí)判別等項(xiàng)工作。CAN協(xié)議的一個(gè)特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)數(shù)據(jù)塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)是可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識(shí)碼可由11位(按CAN技術(shù)規(guī)范2.0A)或29位(按CAN技術(shù)規(guī)范2.0B)二進(jìn)制數(shù)組成,因此可以定義211或229個(gè)不同的數(shù)據(jù)塊。這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這一點(diǎn)在分布式控制系統(tǒng)中非常有用。數(shù)據(jù)段長(zhǎng)度多為8個(gè)字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測(cè)試數(shù)據(jù)的一般要求。同時(shí),8個(gè)字節(jié)不會(huì)占用總線時(shí)間過長(zhǎng)、從而保證了通信的實(shí)時(shí)性。CAN協(xié)議采用CRC檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。

隨著USB1.1、USB2.0規(guī)范的相繼制定,為外設(shè)與計(jì)算機(jī)的接口提出了新的發(fā)展方向。USB的主要特點(diǎn)有:外設(shè)安裝簡(jiǎn)單,可實(shí)現(xiàn)熱插撥;通訊速率高,USB1.1全速傳送速率為12Mbps,與標(biāo)準(zhǔn)串行端口相比,大約快100倍;支持多設(shè)備連接;提供內(nèi)置電源。

通用串行總線(Universal Serial Bus)是國(guó)外幾家公司為了解決日益增加的PC外設(shè)與有限的主板插槽和端口之間的矛盾而制定的一種串行通信的標(biāo)準(zhǔn)。USB作為一種新型的計(jì)算機(jī)接口技術(shù),具有傳輸速度高、實(shí)時(shí)性強(qiáng)、易于擴(kuò)展、使用靈活、能夠進(jìn)行錯(cuò)誤偵測(cè)等特點(diǎn),可以在很大范圍內(nèi)取代RS-232、并行端口,進(jìn)行短距離高速數(shù)據(jù)傳輸,因而應(yīng)用普遍。


適配器硬件接口

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

傳感器從現(xiàn)場(chǎng)采集來的模擬信號(hào)經(jīng)電路轉(zhuǎn)換成相應(yīng)的數(shù)字量,AT89S52對(duì)該數(shù)字量做相應(yīng)的處理后,在現(xiàn)場(chǎng)進(jìn)行顯示監(jiān)控,同時(shí)寫入SJA1000發(fā)送到CAN總線上供其他設(shè)備使用或做進(jìn)一步的處理。

AT89S52單片機(jī)的ALE,WR,RD端分別控制SJA1000的ALE/AS,WR,RD端,P2.0控制片選CS,地址和數(shù)據(jù)總線由P0口分時(shí)復(fù)用實(shí)現(xiàn)。CAN接口電路使用PHILIPS的PCA82C250芯片實(shí)現(xiàn)電平的轉(zhuǎn)換,以滿足CAN總線通信要求,并可調(diào)整轉(zhuǎn)換速度和防止大的干擾。

USB設(shè)備在正常使用以前,必須由主機(jī)配置設(shè)備。主機(jī)一般會(huì)從USB設(shè)備獲取配置信息后再確定此設(shè)備有哪些功能。在發(fā)出連接USB命令后,主機(jī)先讀取設(shè)備描述符,然后發(fā)出設(shè)置USB地址SETUP包,設(shè)置USB地址后,進(jìn)行主機(jī)客戶驅(qū)動(dòng)與設(shè)備初始化。其余端點(diǎn)(ENDPOINT)依此類推。USB器件在經(jīng)歷了枚舉、定地址、設(shè)定接口、端點(diǎn)等步驟以后,進(jìn)入正常的工作狀態(tài)。

在其頭文件里需定義USB規(guī)范中的各種描述符格式,包括設(shè)備描述表、配置描述表、接口描述表、端點(diǎn)描述表、字符串描述表以及描述表類型。這樣,在發(fā)送配置[接口(1),端點(diǎn)(1),接口(2),端點(diǎn)(2),…,類,廠商等]聯(lián)合描述表時(shí),主機(jī)USBD可以根據(jù)描述類型標(biāo)識(shí)區(qū)分各種分描述表。


軟件編程

軟件編程包括微控制器的固件和計(jì)算機(jī)端USB驅(qū)動(dòng)程序兩部分。軟件編程主要分為三部分:初始化單片機(jī)及其外圍電路(包括中斷控制器);可以執(zhí)行中斷的主循環(huán);讀寫中斷服務(wù)程序并馬上執(zhí)行。

微控制器固件編程

USB 實(shí)驗(yàn)系統(tǒng)可使用PDIUSBD12 在USB 上傳輸數(shù)據(jù),這些設(shè)備的CPU 要忙于處理前臺(tái)任務(wù),PDIUSBD12 的固件往往設(shè)計(jì)成基于中斷查詢和響應(yīng)的層次式結(jié)構(gòu)。這種完全的中斷驅(qū)動(dòng),使得當(dāng)CPU 處理前臺(tái)任務(wù)時(shí),USB 的傳輸可在后臺(tái)進(jìn)行,這就確保了的傳輸速率和更好的軟件結(jié)構(gòu),同時(shí)簡(jiǎn)化了編程和調(diào)試,也易于實(shí)現(xiàn)固件的維護(hù)和移植。

PDIUSBD12的功能框圖

PDIUSBD12是一款性價(jià)比很高的USB器件。它通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口。該器件采用模塊化的方法實(shí)現(xiàn)一個(gè)USB接口,使現(xiàn)存的體系結(jié)構(gòu)使固件投資減到。它還支持本地的DMA傳輸。這種實(shí)現(xiàn)USB接口的標(biāo)準(zhǔn)組件使得設(shè)計(jì)者可以在各種不同類型微控制器中選擇出合適的微控制器。這種靈活性減小了開發(fā)的時(shí)間、風(fēng)險(xiǎn)以及費(fèi)用(通過使用已有的結(jié)構(gòu)和減少固件上的投資),從而用快捷的方法實(shí)現(xiàn)經(jīng)濟(jì)的USB外設(shè)的解決方案。PDIUSBD12完全符合USB1.1版的規(guī)范。圖2 為PDIUSBD12的功能框圖。


USB 設(shè)備接到HUB 的某個(gè)端口上,該HUB 就會(huì)通知主機(jī)發(fā)生了設(shè)備接入事件,主機(jī)確認(rèn)設(shè)備的接入事件和接入端口,設(shè)備處于連接狀態(tài)(Attached)。主機(jī)向該端口送一個(gè)持續(xù)100ms的復(fù)位命令(RESET)信號(hào),當(dāng)RESET 信號(hào)結(jié)束時(shí),端口被使能并打開,復(fù)位后所有的寄存器和狀態(tài)被復(fù)位,并能響應(yīng)默認(rèn)地址。這時(shí)HUB 能夠提供100mA 電流給USB 設(shè)備,USB 設(shè)備進(jìn)入上電狀態(tài)(Powered)。主機(jī)通過該默認(rèn)地址讀取設(shè)備的描述器來獲得此地址相應(yīng)的默認(rèn)管道的數(shù)據(jù)傳輸量。這時(shí)設(shè)備處于地址默認(rèn)狀態(tài)(Default);主機(jī)給設(shè)備分發(fā)一個(gè)的地址,設(shè)備進(jìn)入地址狀態(tài)(Addressed)。主機(jī)讀取設(shè)備的配置信息,主機(jī)以配置信息向設(shè)備分發(fā)一個(gè)配置值,該端點(diǎn)準(zhǔn)備就緒可以開始工作,設(shè)備可以使用,這時(shí)設(shè)備處于配置狀態(tài)。若設(shè)備在上電狀態(tài)后,未獲得總線的訪問權(quán),則進(jìn)入掛起狀態(tài)(Suspended ),直到總線激活以后重進(jìn)入原狀態(tài)。設(shè)備在掛起狀態(tài)吸入電流可以很小,必須小于500 A 。當(dāng)設(shè)備從HUB 端口移走時(shí),HUB 通知主機(jī),主機(jī)確認(rèn)后使該端口進(jìn)入無能狀態(tài),端口關(guān)閉。

主循環(huán)MAINLOOP.C

主循環(huán)是固件的前臺(tái)。設(shè)備上電后,主機(jī)要通過設(shè)備的上拉電阻產(chǎn)生的信號(hào)變化來檢測(cè)新的設(shè)備連接,因此,MCU 一旦上電就要初始化其所有端口、存儲(chǔ)區(qū)、定時(shí)器和中斷服務(wù)程序。為了確保在MCU 準(zhǔn)備好服務(wù)PDIUSBD12 之前PDIUSBD12 不會(huì)進(jìn)行操作,MCU 將重新連接USB ,包括將Soft_Connect寄存器設(shè)置為ON 。PDIUSBD12芯片內(nèi)置1.5K Soft_Connect上拉電阻,默認(rèn)時(shí)不與VCC相連,這就允許MCU來決定與USB 建立連接的時(shí)間。

主循環(huán)的流程如圖3所示:主循環(huán)檢查事件標(biāo)志并進(jìn)入對(duì)應(yīng)的子程序進(jìn)行進(jìn)一步的處理。MCU一上電就需要初始化其所有的端口、存儲(chǔ)區(qū)、定時(shí)器和中斷服務(wù)程序。之后MCU將重新連接USB,包括將Soft_Connect寄存器設(shè)置為ON。主循環(huán)的職能有:

1)初始化MCU所有I/O端口、存儲(chǔ)區(qū)、定時(shí)器和中斷寄存器等;

2)解除片選和片選PDIUSBD12;

3)清除事件標(biāo)志寄存器;

4)重新連接USB;

5)恢復(fù)到未配置狀態(tài)、設(shè)置配置狀態(tài);

6)在具體的USB應(yīng)用系統(tǒng)中,主循環(huán)要做其他的前臺(tái)工作。

中斷服務(wù)程序

后臺(tái)ISR (中斷服務(wù)程序)和前臺(tái)主程序循環(huán)之間的數(shù)據(jù)交換通過事件標(biāo)志和一個(gè)公共的數(shù)據(jù)緩沖區(qū)來實(shí)現(xiàn)。例如PDIUSBD12 的普通端點(diǎn)和主端點(diǎn)可以使用循環(huán)的數(shù)據(jù)緩沖區(qū)。當(dāng)PDIUSBD12 從USB 收到一個(gè)數(shù)據(jù)包,它就對(duì)CPU 產(chǎn)生一個(gè)中斷請(qǐng)求,CPU 立即響應(yīng)中斷。在ISR 中,固件將數(shù)據(jù)包從PDIUSBD12 內(nèi)部緩沖區(qū)移到循環(huán)數(shù)據(jù)緩沖區(qū)并在隨后清零PDIUSBD12 的內(nèi)部緩沖區(qū)以使其能接收新的數(shù)據(jù)包。CPU 可以繼續(xù)它當(dāng)前的前臺(tái)任務(wù)直到完成,然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內(nèi)是否有新的數(shù)據(jù)并開始新的前臺(tái)任務(wù)。中斷服務(wù)程序流程如圖4所示。

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

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

USB設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序設(shè)計(jì)

實(shí)時(shí)數(shù)據(jù)采集程序的書寫離不開中斷的使用。為了在可視化編程中使用中斷,必須選擇適當(dāng)?shù)墓ぞ邅頃鴮懙讓域?qū)動(dòng)程序。目前,市場(chǎng)上存在多種開發(fā)WDM 設(shè)備驅(qū)動(dòng)程序的工具。其中DDK 是基本的,也是原始的驅(qū)動(dòng)開發(fā)工具。用戶可以根據(jù)自己的需要更改inf文件,然后在DDK中重新編譯連接生成新的驅(qū)動(dòng)程序,用來滿足實(shí)際應(yīng)用的需要。我們也可以使用WinDriver 來開發(fā)設(shè)備驅(qū)動(dòng)程序。利用它開發(fā)設(shè)備驅(qū)動(dòng)程序不需要熟悉操作系統(tǒng)的內(nèi)核,用戶編寫的驅(qū)動(dòng)程序工作在用戶模式下,通過與WinDriver 的.Vxd 或.Sys 文件交互來達(dá)到驅(qū)動(dòng)硬件的目的,只需要啟動(dòng)Driver Wizard,檢測(cè)連接的USB設(shè)備,讀取USB設(shè)備中的端點(diǎn)及配置信息,并自動(dòng)生成操作USB設(shè)備的管道讀寫函數(shù)代碼及inf文件。


結(jié)論與展望

研究工作總結(jié)

由于USB 具有使用簡(jiǎn)單、即插即用、熱插拔、開放性、高速、穩(wěn)定、可靠性高等優(yōu)點(diǎn),它特別適用于儀器儀表、虛擬儀器、數(shù)據(jù)采集設(shè)備、監(jiān)控設(shè)備和加密設(shè)備等等場(chǎng)合?;赨SB技術(shù)的CAN總線適配器的實(shí)物照片如圖5所示。

本論文得到主要結(jié)論如下:

1 ) 系統(tǒng)采用CAN 總線取代傳統(tǒng)的分布式數(shù)據(jù)采集系統(tǒng)常用的485 總線,在數(shù)據(jù)傳輸速度、傳輸距離、抗干擾和故障檢測(cè)方面的性能得到了很大的提高。

2) 本設(shè)計(jì)采用的WinDriver 是一種簡(jiǎn)單的驅(qū)動(dòng)程序設(shè)計(jì)軟件,它使開發(fā)者擺脫了態(tài)驅(qū)動(dòng)開發(fā)的難點(diǎn),可以在用戶態(tài)開發(fā)簡(jiǎn)單的驅(qū)動(dòng)程序,而不需對(duì)操作系統(tǒng)和底層驅(qū)動(dòng)的原理了解太多,這有利于快速開發(fā)外設(shè)驅(qū)動(dòng)。

3)各個(gè)節(jié)點(diǎn)通過CAN 現(xiàn)場(chǎng)總線連成通訊網(wǎng)絡(luò),再通過USB 連接到主機(jī)、筆記本、現(xiàn)場(chǎng)監(jiān)控機(jī)。該系統(tǒng)用USB 作為節(jié)點(diǎn)連接到計(jì)算機(jī)的接口具有快速、即插即用、支持熱插拔的特點(diǎn),使連接更加高效、便利。

展望

本設(shè)計(jì)在USB 接口的硬件、固件、驅(qū)動(dòng)程序以及用戶軟件訪問驅(qū)動(dòng)程序的方法做了一些探索性的工作。雖然該系統(tǒng)的硬件設(shè)計(jì)、單片機(jī)程序和驅(qū)動(dòng)程序及應(yīng)用軟件的編碼調(diào)試都已基本完成,但設(shè)計(jì)中仍有需要進(jìn)一步改進(jìn)的地方,而且,針對(duì)不同的需求,也需要做適當(dāng)?shù)母膭?dòng)。建議今后在以下幾個(gè)方面開展進(jìn)一步的工作:

1)由于開發(fā)板使用89S52作為D12 的控制器,這就從根本上限制了適配器數(shù)據(jù)傳輸速度的提高。在實(shí)驗(yàn)過程中,使用89S52 芯片和仿真器作為主控制器,而它們的工作頻率比較低,它們變成了設(shè)備提高傳輸速率的瓶頸。如果換用工作頻率更高的處理器,此開發(fā)板的傳輸速率會(huì)成倍的增加。

2) 隨著USB 主控制器芯片的推出,USB 外設(shè)可以脫離笨重的PC ,直接進(jìn)行通訊。例如在數(shù)據(jù)采集系統(tǒng)中,如果系統(tǒng)本身USB 主控能力,采集到的數(shù)據(jù)在現(xiàn)場(chǎng)可以直接存入優(yōu)盤,采集完畢再由優(yōu)盤導(dǎo)入計(jì)算機(jī)進(jìn)行處理。這樣,將大大減小系統(tǒng)體積,方便攜帶。利用主控芯片設(shè)計(jì)帶主控制器的外設(shè),以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通訊,是目前USB 設(shè)計(jì)的重點(diǎn)。很多公司推出了自己的主控制器芯片,如ISP1160 ( Philips 全速USB 主控制器)。

3) WinDriver雖然降低了驅(qū)動(dòng)程序的編寫難度,但也降低了程序的執(zhí)行效率。在實(shí)際應(yīng)用中如果效率不夠,可以考慮將速率要求高的部分插入到態(tài)運(yùn)行,這樣可提高效率。適配器中的固件編程使用了C語言編寫,程序中有許多函數(shù)的調(diào)用,雖然程序的可讀性相對(duì)較好,但它的執(zhí)行效率卻不如匯編語言的執(zhí)行效率高。因此,選擇編程語言也是提高設(shè)備傳輸率的方法之一。

5)雖然USB接口的設(shè)備已經(jīng)在市場(chǎng)上比比皆是,然而不難發(fā)現(xiàn),相比與傳統(tǒng)的串口、PS/2 等廉價(jià)接口,USB設(shè)備的價(jià)格還是相對(duì)較高。

6)USB想要真正統(tǒng)一外設(shè)接口,必須要在與IEEE 1394 的競(jìng)爭(zhēng)中獲勝。1394 只用一根線來傳送信號(hào),使之不單在PC 外設(shè),在通信領(lǐng)域也有很好的應(yīng)用。但是1394 的一個(gè)致命的缺點(diǎn)是價(jià)格太高,一直無法有廣泛的應(yīng)用。隨著1394 芯片價(jià)格的回落,它與USB 的競(jìng)爭(zhēng)將越來越激烈。



  

參考文獻(xiàn):

[1]. RS-232 datasheet http://m.58mhw.cn/datasheet/RS-232_584855.html.
[2]. AT89S52 datasheet http://m.58mhw.cn/datasheet/AT89S52_970343.html.
[3]. SJA1000 datasheet http://m.58mhw.cn/datasheet/SJA1000_609075.html.
[4]. PCA82C250 datasheet http://m.58mhw.cn/datasheet/PCA82C250_542618.html.
[5]. PDIUSBD12  datasheet http://m.58mhw.cn/datasheet/PDIUSBD12+_544412.html.
[6]. PC  datasheet http://m.58mhw.cn/datasheet/PC+_2043275.html.


關(guān)鍵詞:基于USB技術(shù)的CAN總線適配器的研究與開發(fā)PCA82C250PDIUSBD12SJA1000AT89S52ISP116089S521394

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!