• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于DSP的CAN—USB通信系統(tǒng)的設(shè)計與實現(xiàn)

      2014-03-21 12:23:25郭陽寬祝連慶那云孟曉辰
      儀表技術(shù)與傳感器 2014年5期
      關(guān)鍵詞:固件端點寄存器

      張 君,郭陽寬,祝連慶,那云,孟曉辰

      (北京信息科技大學(xué)儀器科學(xué)與光電工程學(xué)院,北京 100192)

      0 引言

      CAN總線具有傳輸距離遠、傳輸速率高、抗干擾能力強、易于組網(wǎng)、成本低等優(yōu)點[1]。目前CAN總線與PC連接普遍采用RS232、RS485和ISA等傳統(tǒng)接口技術(shù),它們存在著傳輸速度慢、功耗高、安裝復(fù)雜等缺點。USB接口技術(shù)以其傳輸速度快、集成化程度高、支持熱插拔、即插即用、無需外接電源和連接簡單等優(yōu)點得到了廣泛的應(yīng)用[2]。因此,使用USB作為CAN總線與PC連接的接口,將極大提高通信的速度和通信的可靠性。DSP具有成本低、功耗低、處理消息速度快等優(yōu)點,在通信和工業(yè)產(chǎn)品中得到了廣泛的應(yīng)用。用DSP作為USB與CAN之間的微處理器,可以完成信息的實時讀取、處理和傳輸?shù)墓δ堋?/p>

      1 系統(tǒng)硬件設(shè)計

      1.1總體結(jié)構(gòu)

      如圖1所示,系統(tǒng)主要由USB總線接口、微處理器TMS320F2812和 CAN總線接口組成。

      圖1系統(tǒng)框圖

      其中USB總線接口負責(zé)PC和微處理器TMS320F2812之間消息的交換;CAN總線接口負責(zé)CAN節(jié)點與微處理器TMS320F2812之間消息的交換;微處理器TMS320F2812用于將USB總線接口和CAN總線接口連接起來,實現(xiàn)對USB與CAN總線上消息的讀取,處理和傳輸?shù)墓δ堋?/p>

      1.2USB總線接口的硬件設(shè)計

      USB總線接口的硬件電路連接框圖如圖2所示,主要由USB接口芯片CY7C68013和微處理器TMS320F2812構(gòu)成。CY7C68013內(nèi)部集成了USB2.0收發(fā)器、SIE、增強的8051微控制器和可編程的外圍接口。工作在48MHz晶振下時,指令執(zhí)行的速度遠快于標(biāo)準(zhǔn)的8051單片機。設(shè)計采用CY7C68013的SLAVE FIFO模式,在此模式下,CY7C68013內(nèi)部CPU不參與消息的傳輸,而是由外部的微處理器直接控制CY7C68013 中FIFO消息的讀寫。微處理器TMS320F2812作為控制核心,產(chǎn)生USB的片選信號、端點選擇和讀寫信號控制CY7C68013進行消息傳輸。

      圖2 硬件電路連接框圖

      在圖2中,CY7C68013經(jīng)過16位雙向數(shù)據(jù)總線FD連接至TMS320F2812,通過SLOE引腳控制輸出。FIFOADR[1:0]引腳用于選擇4個FIFO端點緩沖區(qū)中的一個與XD總線連接。SLRD和SLWR分別是FIFO的讀寫選通信號。FLAGA-C用于表示CY7C68013芯片內(nèi)部數(shù)據(jù)緩沖區(qū)的狀態(tài),其直接與DSP的IO引腳相連。

      1.3CAN總線接口的硬件設(shè)計

      TMS320F2812芯片上集成了一個完整的增強型CAN控制器,即eCAN,其為CPU提供了完整的CAN2.0B協(xié)議,因此,設(shè)計電路時不必外接控制器就可以實現(xiàn)CAN總線的底層協(xié)議[3]。TMS320F2812內(nèi)部CAN控制器只有通過CAN收發(fā)器才能與外部進行通信,因此采用外接PCA82C250作為CAN的收發(fā)器。PCA82C250是CAN協(xié)議控制器和物理總線間的接口,該器件對總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力,負擔(dān)著節(jié)點邏輯電平和CAN總線差動電平之間的電平轉(zhuǎn)換任務(wù)。PCA82C250可以增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護總線,降低射頻干擾實現(xiàn)熱防護[4]?;赥MS320F2812的CAN總線接口硬件電路如圖3所示。

      圖3 CAN總線接口硬件電路圖

      在圖3中,引腳CANRX,CANTX分別是DSP內(nèi)部CAN控制器模塊的接收、發(fā)送引腳,其直接與PCA82C250的RXD和TXD引腳相連。CANH和CANL為差分輸出,2個引腳分別通過1個限流電阻與CAN總線相連,該限流電阻可以克服長線效應(yīng),減小通信介質(zhì)中信號的反射。引腳RS用于工作模式的選擇。通過外接1個22 kΩ的斜率電阻,使系統(tǒng)工作在斜率模式下,該模式允許使用非屏蔽雙絞線或平行線作為總線,可降低射頻干擾。

      2 系統(tǒng)軟件設(shè)計

      系統(tǒng)軟件設(shè)計主要包括CY7C68013固件程序的設(shè)計、CAN程序的設(shè)計以及應(yīng)用程序的設(shè)計。

      2.1固件程序設(shè)計

      固件程序是指存儲在USB接口芯片內(nèi)部,用于輔助設(shè)備完成預(yù)期功能的程序。該程序主要完成USB接口芯片內(nèi)部的初始化,處理主機的設(shè)備請求,以及完成外圍電路的控制等[5]。Cypress公司為CY7C68013的固件開發(fā)提供了固件程序框架和相關(guān)的庫文件,為了實現(xiàn)特定的功能,只需要在TD_Init()、TD_Poll()等函數(shù)中配置需要使用的端點,選擇合適的傳輸方式,添加實現(xiàn)功能的代碼等[6]。

      系統(tǒng)上電后,固件程序首先初始化內(nèi)部的狀態(tài)變量,然后調(diào)用初始化函數(shù)TD_Init(),當(dāng)程序從此函數(shù)返回后,固件程序就會設(shè)置USB接口成為未配置的狀態(tài)并且使能中斷,接下來,在1 s的間隔內(nèi)重新列舉設(shè)備,并直到端點0接收到設(shè)置封包為止。一旦設(shè)置封包被檢測到,固件程序?qū)㈤_始交互的任務(wù)調(diào)度[6]。為使系統(tǒng)能夠快速、可靠地傳輸消息,采用自動批量傳輸。將端點2設(shè)置為OUT型,負責(zé)傳輸PC的消息;將端點6設(shè)置為IN型,負責(zé)接收CAN總線上的消息。以下是在Keil C51環(huán)境下編寫的以C語言為基礎(chǔ)的固件程序的主要代碼。

      void TD_Init(void)

      {IFCONFIG |= 0xCB;//異步從FIFO模式,使用內(nèi)部的48MHz的時鐘頻率

      ……..

      //初始化端點2的輸出的程序段

      EP2CFG = 0xA2;

      EP2FIFOCFG=0x10;

      // 初始化端點6的輸入的程序段

      EP6CFG = 0xE2;

      EP6FIFOCFG=0x0C;

      ……..

      //FLAGA標(biāo)志端點2的空,F(xiàn)LAGB標(biāo)志端點6的滿

      PINFLAGSAB=0xE8;

      }

      2.2CAN程序設(shè)計

      系統(tǒng)CAN總線通信工作原理為:在程序初始化中,根據(jù)系統(tǒng)要求對CAN寄存器進行初始化;DSP對CAN總線通信的管理包括發(fā)送信息和接收信息。 TMS320F2812中的eCAN模塊主要由CAN協(xié)議內(nèi)核和消息控制器構(gòu)成。CAN協(xié)議內(nèi)核主要完成消息解碼,并向接收緩沖發(fā)送解碼后的消息,同時根據(jù)CAN協(xié)議向總線發(fā)送消息,消息控制器決定接收到的消息的取舍[7]。對具體系統(tǒng)的總線通信軟件部分的設(shè)計包括應(yīng)用層協(xié)議制定和實施,明確各節(jié)點的功能以及相互交互的數(shù)據(jù),規(guī)定每位數(shù)據(jù)的確切含義以及要做的響應(yīng)處理[5]。因此,在軟件設(shè)計中,主要完成3部分程序的設(shè)計:初始化程序、發(fā)送消息程序以及接收消息程序。

      2.2.1初始化程序設(shè)計

      CAN模塊初始化包括:時鐘使能,引腳定義,波特率設(shè)定等。首先,關(guān)閉看門狗,通過配置PLLCR、PCLKCR寄存器,對時鐘和頻率進行設(shè)置;其次,配置DSP寄存器GPMFUX的位6和位7,使CANTX和CANRX引腳作為CAN的通信接口引腳;然后,配置與波特率相關(guān)的3個寄存器(SCSR1、BCR1和BCR2);最后,對中斷進行設(shè)置,主要包括郵箱中斷屏蔽寄存器CANMIM以及郵箱中斷級別設(shè)置寄存器CANMIL的配置。只有當(dāng)CAN總線控制器進入復(fù)位模式時,才能進行初始化,而當(dāng)初始化完成后,控制器的復(fù)位標(biāo)志必須清除。

      2.2.2發(fā)送消息和接收消息程序設(shè)計

      CAN總線采用“載波檢測,多主掌控、沖突避免(CSMA/CA)”的通信模式,以報文為單位進行消息傳輸[7]。發(fā)送消息的過程如圖4所示。發(fā)送消息時,需要初始化發(fā)送郵箱,主要包括設(shè)置郵箱使能寄存器CANME,郵箱數(shù)據(jù)方向寄存器CANMD,通過寄存器MBOXn.MSGID(n=0-31)設(shè)置發(fā)送郵箱的ID,初始化后,向消息寄存器中寫入要發(fā)送的消息,然后設(shè)置發(fā)送郵箱的TRS位為1,請求發(fā)送信息,等待傳輸響應(yīng)位TA=1,表示成功發(fā)送消息,最后清除發(fā)送響應(yīng)標(biāo)志位,等待下次發(fā)送信息。

      接收消息的過程如圖5所示。接收消息時,同樣需要初始化相應(yīng)的接收郵箱,完成初始化后,如果接收郵箱的ID與CAN接口發(fā)送來的消息的ID匹配,并成功接收,則接收郵箱掛起寄存器RMP的相應(yīng)位被置1,當(dāng)CPU讀取完接收郵箱中的消息后,接收郵箱掛起寄存器的標(biāo)志位被清除,等待下一條消息的接收。

      圖4 發(fā)送消息流程圖

      圖5 接收消息流程圖

      2.3應(yīng)用程序設(shè)計

      系統(tǒng)中,TMS320F2812實現(xiàn)2個功能:實現(xiàn)USB與CAN之間雙向的消息傳輸;完成CAN控制器的初始化和輸出USB控制器所需要的信號。

      圖6為消息由USB發(fā)向CAN的軟件流程圖。DSP采用查詢方式接收USB傳來的消息,當(dāng)USB芯片端點2不為空時,DSP就將該端點緩沖區(qū)的消息讀進來進行處理,否則一直等待。經(jīng)過處理后的消息放入到發(fā)送郵箱的緩沖區(qū)中,由CAN收發(fā)器發(fā)送給相應(yīng)的CAN節(jié)點。圖7為消息由CAN發(fā)向USB的軟件流程圖。DSP通過中斷方式接收CAN總線上的消息,當(dāng)中斷發(fā)生時,DSP響應(yīng)中斷,把存儲在接收郵箱緩沖區(qū)中的消息讀取出來,經(jīng)過處理后,發(fā)送給USB芯片端點6。當(dāng)USB芯片端點6不滿時,DSP就將消息放入端點6的緩沖區(qū)中,從而傳送給上位機,否則一直等待。

      圖6 USB至CAN流程圖

      圖7 CAN至USB流程圖

      3 通信測試

      系統(tǒng)測試如圖8所示。利用CAN調(diào)試器作為CAN總線接口的節(jié)點,與PCA82C250實時通信。PC通過Cypress USB Console界面向CAN節(jié)點發(fā)送消息并接收來自該節(jié)點的消息。USB接口工作在高速模式下,負責(zé)PC與DSP之間消息的傳輸。CAN收發(fā)器負責(zé)DSP與CAN節(jié)點之間消息的傳輸。首先,在固件程序中設(shè)置端點2是輸出,端點6是輸入。DSP中設(shè)置0號郵箱是發(fā)送,16號郵箱是接收。其次,通過USB界面把固件程序下載到CY7C68013中,并選擇CAN調(diào)試器的傳輸速率為800 kbit/s.

      圖8系統(tǒng)測試方框圖

      圖9USB Console發(fā)送消息界面

      圖10CAN調(diào)試器接收消息界面

      圖11CAN調(diào)試器發(fā)送消息界面

      圖12USB Console接收消息界面

      4 結(jié)束語

      經(jīng)過多次測試,當(dāng)USB控制器工作在高速模式,CAN收發(fā)器工作在800 kbit/s的傳輸速率下,PC和CAN調(diào)試器均準(zhǔn)確的收到消息。系統(tǒng)將USB的快速傳輸消息的特點和CAN總線通信的高性能、高可靠性的優(yōu)點結(jié)合起來,通過硬件電路的設(shè)計以及相關(guān)程序的編寫,實現(xiàn)消息快速、可靠的傳輸。

      參考文獻:

      [1]饒運濤,鄒繼軍,王進宏,等.現(xiàn)場總線CAN 原理與應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,2007.

      [2]劉吉名,裘東興.基于CY7C68013的USB2.0數(shù)據(jù)傳輸模塊設(shè)計.電子測量技術(shù),2008(3):94-96.

      [3]李洪波.基于DSP的CAN總線節(jié)點的研究與通信實現(xiàn).哈爾濱理工大學(xué)學(xué)報,2005,2(10):72-75.

      [4]佟俐,潘宏俠,胡田.基于TMS320F2812的CAN總線通信系統(tǒng).儀表技術(shù)與傳感器,2008(10):36-38.

      [5]黃艷芳,趙晶.基于CAN-USB總線的機車滾動軸承檢測系統(tǒng)的設(shè)計.電子測量技術(shù),2009,4(32):12-16.

      [6]孟浩.基于EZ-USB FX2的CMOS圖像采集系統(tǒng)設(shè)計與實現(xiàn).儀器儀表學(xué)報,2007,4(28):333-334.

      [7]蔡昌新.eCAN接口的設(shè)計與實現(xiàn).長江大學(xué)學(xué)報(自科科學(xué)版),2007,理工卷(2):93-95.

      猜你喜歡
      固件端點寄存器
      非特征端點條件下PM函數(shù)的迭代根
      Lite寄存器模型的設(shè)計與實現(xiàn)
      不等式求解過程中端點的確定
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點估計
      基于固件的遠程身份認證
      基丁能雖匹配延拓法LMD端點效應(yīng)處理
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      一種通過USB接口的可靠固件升級技術(shù)
      奧林巴斯XZ—2新固件升級
      中國攝影(2014年1期)2014-02-24 01:50:23
      定州市| 罗江县| 磴口县| 汝南县| 长葛市| 渝北区| 镇坪县| 平山县| 涡阳县| 孝义市| 多伦县| 遂昌县| 东明县| 云南省| 比如县| 合水县| 阳西县| 射洪县| 河源市| 新宁县| 南城县| 炎陵县| 颍上县| 庆元县| 深泽县| 拜城县| 临桂县| 上饶县| 潜山县| 沙河市| 青川县| 乌鲁木齐县| 凤庆县| 新乡县| 凉山| 波密县| 休宁县| 东源县| 华亭县| 闸北区| 万州区|