亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM9的USB與多通道CAN轉(zhuǎn)換器的設(shè)計

        2010-07-02 10:48:02楊曄曲波
        電子技術(shù)應(yīng)用 2010年2期
        關(guān)鍵詞:信號設(shè)備設(shè)計

        楊曄,曲波

        (蘇州大學(xué) 電子信息學(xué)院,江蘇 蘇州 215021)

        USB是電腦主流的外圍串行總線,是一種新型、快速、雙向、同步傳輸、并可以熱插拔的數(shù)據(jù)傳輸總線。CAN總線是擁有多主節(jié)點、開放式架構(gòu)、錯誤檢測及自恢復(fù)能力等優(yōu)勢的一種總線。但一般工控機(jī)不具有CAN總線接口,需要專門的接口卡才能連接,并且專用接口卡成本較高,連接不便。而USB的即插即用特性可以解決了上述問題。目前性價比高的USB-CAN數(shù)據(jù)轉(zhuǎn)換器比較少見,而且能應(yīng)用的CAN通道數(shù)較少,一般只有1~2路。如要應(yīng)用于大型的CAN總線網(wǎng)絡(luò),CAN接口不夠用,而使用開發(fā)商提供的各種USB-CAN接口適配器,就會出現(xiàn)各參數(shù)及CAN總線的配置不統(tǒng)一的問題。為了解決了這個問題,本文提出了一種 USB與多通道CAN轉(zhuǎn)換器的設(shè)計方案。

        本設(shè)計基于ARM9處理器和SJA1000 CAN控制器,能較好地以低成本實現(xiàn)USB與CAN之間的傳輸。此轉(zhuǎn)換器可以作為“測試工具”應(yīng)用于汽車電子,也可以作為“工業(yè)控制設(shè)備”應(yīng)用于工業(yè)控制現(xiàn)場。

        1 模塊結(jié)構(gòu)的總體設(shè)計

        本設(shè)計將具有遠(yuǎn)距離傳輸能力的CAN總線與即插即用的USB接口相結(jié)合,即利用USB接口方便的特性來實現(xiàn)CAN總線和主機(jī)的連接。并且擴(kuò)展了8路通道的CAN總線,高效地擴(kuò)大了CAN總線的應(yīng)用范圍。USB-CAN轉(zhuǎn)換器的總體框圖如圖1所示。

        圖中,RS232串口用于系統(tǒng)的調(diào)試,RJ45接口用于調(diào)試同時也作為將來系統(tǒng)的擴(kuò)展使用。本設(shè)計自帶8路CAN接口和2路LIN接口,實現(xiàn)USB與 CAN總線的數(shù)據(jù)雙向傳輸。

        圖1 接口模塊總體框圖

        2 硬件設(shè)計

        2.1 ARM處理器和USB接口的設(shè)計

        本設(shè)計的核心處理器是ARM9系列的S3C2440??紤]到三星S3C2440是BGA封裝,需要特殊的焊接工藝,所以本設(shè)計采用核心板+底板的形式。核心板的外部存儲器配置是64 MB SDRAM和64 MB NAND Flash。

        更重要的是,S3C2440內(nèi)置了USB控制器,無需再外擴(kuò)USB控制器,節(jié)省了成本。其內(nèi)置USB控制器完全兼容USB1.1協(xié)議,支持全速設(shè)備;集成USB收發(fā)器,支持Control、Interrupt和Bulk 3種傳輸模式;具備5個FIFO的通信端點,其中Bulk端點支持DMA操作方式,接收和發(fā)送均由64 B的FIFO完成;支持掛起和遠(yuǎn)程喚醒功能。

        在USB接口設(shè)計上,為了避免由于外部設(shè)備或電纜中介入高電壓干擾,造成計算機(jī)USB接口甚至主板的燒壞,本設(shè)計還考慮了USB接口的隔離保護(hù),并選用SN65220芯片作為接口的保護(hù)芯片,其電路如圖2所示。

        圖2 USB接口原理圖

        圖中,USB_SELECT是微處理器用來控制USB設(shè)備與主機(jī)連接的信號。當(dāng)主機(jī)集線器檢測新設(shè)備時,集線器監(jiān)視著每個USB設(shè)備端口的信號電壓,集線器端口的2根信號線的每1根都有15 kΩ的下拉電阻,而每一個設(shè)備在 DP1(即 D+)都有1個1.5 kΩ的上拉電阻。當(dāng)用USB線將PC和USB設(shè)備接通后,設(shè)備的上拉電阻使信號線的電位升高,因此主機(jī)集線器可以檢測到USB設(shè)備[1]。本設(shè)計使用 USB_SELECT來控制 1.5 kΩ的上拉電阻,當(dāng)處理器給USB_SELECT 1個高電平時,這時DP1信號線上的電壓升高,主機(jī)集線器就會檢測到此USB設(shè)備,然后開始USB的設(shè)備枚舉;當(dāng)USB_SELECT為低電平時,則表示沒有設(shè)備連接到主機(jī)。這樣就可以通過USB_SELECT信號的高低來控制設(shè)備與主機(jī)的連接。

        2.2 CAN節(jié)點的設(shè)計

        CAN節(jié)點使用Philips公司的獨立CAN總線控制器SJA1000,收發(fā)器采用高速的TJA1050,它增強(qiáng)了電磁兼容(EMC),且在不上電的時候使總線呈現(xiàn)無源特性。CAN單元模塊負(fù)責(zé)CAN信息幀的收發(fā)和CAN協(xié)議的實現(xiàn),接口管理邏輯負(fù)責(zé)同外部主控制器的接口,該單元的每1個寄存器都可以由主控制器通過SJA1000的地址/數(shù)據(jù)復(fù)用總線訪問。

        SJA1000提供的微處理器的接口信號主要有AD0~AD7共 8根地址數(shù)據(jù)復(fù)用線, 以及 ALE、CS、RD、WR、MODE、RESET和 INT信號。其中,MODE為接口方式選擇信號,本設(shè)計將 MODE接VCC高電平,選用Intel模式。接口電路如圖3所示。

        RESET復(fù)位信號由主控制器S3C2440統(tǒng)一控制,振蕩信號CLK由1個16 MHz的晶振統(tǒng)一提供。另外,ALE、CS、RD、WR和 INT信號需要經(jīng)過 CPLD接口邏輯轉(zhuǎn)換后才能與SJA1000連接。當(dāng)芯片被片選信號CS選中后,地址信號首先出現(xiàn)在復(fù)用總線上,經(jīng)ALE信號鎖存后才可以對數(shù)據(jù)進(jìn)行讀寫操作[2]。

        由于系統(tǒng)設(shè)計的是8通道CAN的轉(zhuǎn)換器,所以共有8個CAN單元并列組成CAN通信模塊。其8通道的數(shù)據(jù)地址總線擴(kuò)展的主要思想是把每個SJA1000(CAN控制器)的寄存器映射到ARM9內(nèi)存地址空間的某個地址,通過內(nèi)存訪問指令,訪問SJA1000的內(nèi)部寄存器。

        2.3 復(fù)雜可編程邏輯器件(CPLD)的設(shè)計

        由于微處理器S3C2440的地址與數(shù)據(jù)總線是分離的,而SJA1000的數(shù)據(jù)與地址線是分時復(fù)用的,兩者總線接口之間存在差異性,因此必須對S3C2440的讀寫時序進(jìn)行邏輯變換,使其滿足SJA1000的接口要求才能使二者配合工作。

        圖3 CAN節(jié)點原理圖

        本模塊選用了Altera公司的MAX3000系列可編程邏輯器件EPM3128芯片。EPM3128具有128個宏單元,80個用戶I/O管腳,2 500個可用門和ISP,管腳間延遲為 10 ns,計數(shù)器速度可高達(dá) 100 MHz,可以很好地滿足系統(tǒng)的需要。

        在本設(shè)計中,CPLD需要完成2個功能:(1)完成S3C2440的地址數(shù)據(jù)非復(fù)用總線到SJA1000的地址數(shù)據(jù)復(fù)用總線的雙向轉(zhuǎn)換;(2)通過對S3C2440的地址線譯碼,進(jìn)行多通道擴(kuò)展(本設(shè)計擴(kuò)展為8通道)。

        通過對S3C2440與SJA1000讀寫時序的分析,可用如下的邏輯關(guān)系來完成2種不同總線的轉(zhuǎn)換:

        其中,ALE、CS、WR、RD 是 SJA1000的總線控制信號,nGCS2、nWE、nOE、A0為 S 3C2440的總線控制與地址信號。根據(jù)以上的邏輯關(guān)系,利用QuartusII的原理圖輸入方式,可以得到如圖4所示的單通道的硬件圖。

        8通道的擴(kuò)展,則利用更多的地址線編碼,再通過CPLD譯碼即可實現(xiàn)。

        3 軟件設(shè)計

        3.1 系統(tǒng)的總體設(shè)計方案

        USB-CAN轉(zhuǎn)換器的工作方案如下[3-4]:

        (1)下行傳輸:上位機(jī)輸出數(shù)據(jù)發(fā)送到USB設(shè)備。上位機(jī)可以在任意時間按照協(xié)議要求把數(shù)據(jù)發(fā)送到USB設(shè)備的緩沖區(qū),USB設(shè)備盡快把緩沖區(qū)中的數(shù)據(jù)發(fā)送到CAN總線。

        (2)上行傳輸:USB緩沖區(qū)中的數(shù)據(jù)輸入到上位機(jī)。首先,USB設(shè)備通過查詢方式不斷檢查CAN總線是否有輸入的數(shù)據(jù),若有數(shù)據(jù)存入CAN緩沖區(qū),上位機(jī)輸出“讀CAN總線請求”到USB設(shè)備,USB設(shè)備再根據(jù)請求的內(nèi)容確定是否獲取到需要的數(shù)據(jù),將獲取到的數(shù)據(jù)寫入USB設(shè)備的發(fā)送緩沖區(qū);若沒有數(shù)據(jù)存入CAN緩沖區(qū),則按照協(xié)議的格式,回應(yīng)“沒有收到數(shù)據(jù)”。

        3.2 CAN節(jié)點的軟件設(shè)計

        CAN總線節(jié)點的通信程序主要包括3個部分:CAN初始化、數(shù)據(jù)的發(fā)送和數(shù)據(jù)的接收。初始化程序主要是對SJA1000的初始化設(shè)置,包括:工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器和驗收代碼寄存器的設(shè)置、波特率的設(shè)置和中斷允許寄存器的設(shè)置。SJA1000的初始化工作要在復(fù)位模式下才能進(jìn)行。初始化設(shè)置后就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。CAN控制器的初始化是CAN總線系統(tǒng)設(shè)計中極為重要的一個部分,是系統(tǒng)正常工作的前提[5]。初始化過程如圖5所示。CAN控制器從上電到正常工作,一般需要經(jīng)過硬件和軟件的配置。軟件的初始化函數(shù)為:

        int SJA1000_Init(struct CanConfig&config,unsigned char channel);

        參數(shù)說明:struct CanConfig是 SJA1000配置信息的結(jié)構(gòu)體;channel是通道選擇,如果成功則返回 0,如果不成功,則返回不為0。

        圖5 SJA1000初始化流程圖

        對于數(shù)據(jù)的發(fā)送程序,發(fā)送時用戶只需將待發(fā)送的數(shù)據(jù)按特定格式組合成1幀報文,送入SJA1000發(fā)送緩沖區(qū)中,然后啟動SJA1000發(fā)送即可。每幀發(fā)送之后,可以通過發(fā)送中對安置軟件發(fā)送成功標(biāo)志,發(fā)送程序通過對成功標(biāo)志的查詢來進(jìn)行相應(yīng)的處理。其實現(xiàn)函數(shù)如下:

        void SJA1000_Write (structCanFrame&frame,unsigned char channel);

        參數(shù)說明:struct CanFrame結(jié)構(gòu)體是CAN的幀格式,channel是通道選擇。

        接收程序要比發(fā)送程序復(fù)雜,采用中斷接收方式,這樣可以更有效地接收數(shù)據(jù)。通過讀取SJA1000中斷狀態(tài)寄存器進(jìn)行接收及出錯處理。其中斷函數(shù)如下:

        void__irq SJA1000_ReadData(void)。

        CAN總線是一種比較成熟的現(xiàn)場總線,目前被廣泛應(yīng)用于汽車電子和工業(yè)控制。而USB總線是PC機(jī)廣泛采用的接口設(shè)備。多通道的USB-CAN轉(zhuǎn)換器可以在大型的CAN網(wǎng)絡(luò)的應(yīng)用中提供一個方便的USB接口,大大簡化了現(xiàn)場總線與PC機(jī)之間的數(shù)據(jù)通信。因此本設(shè)計具有很強(qiáng)的實用性,具有良好的應(yīng)用前景。

        [1]蕭世文,宋延清.USB2.0硬件設(shè)計[M].北京:清華大學(xué)出版社,2006:23-49.

        [2]廖濟(jì)林.USB2.0應(yīng)用系統(tǒng)開發(fā)實例精講[M].北京:電子工業(yè)出版社,2006:72-75.

        [3]王黎明.CAN現(xiàn)場總線系統(tǒng)的設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2008:103-127.

        [4]林新兵.基于嵌入式系統(tǒng)的USB-CAN協(xié)議轉(zhuǎn)換器的設(shè)計與實現(xiàn)[D].中國海洋大學(xué),2006:32-35.

        [5]彭廣.支持多點通信的USB-TO-CAN轉(zhuǎn)換器的設(shè)計與實現(xiàn)[D].長沙:中南大學(xué),2007:8-12.

        猜你喜歡
        信號設(shè)備設(shè)計
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        瞞天過?!律O(shè)計萌到家
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        基于FPGA的多功能信號發(fā)生器的設(shè)計
        電子制作(2018年11期)2018-08-04 03:25:42
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        基于LabVIEW的力加載信號采集與PID控制
        国产女精品| 亚洲乳大丰满中文字幕| 幻女bbwxxxx在线视频| 亚洲欧美日韩国产色另类| 亚洲精品国产熟女久久| 一本色道久久88加勒比| 国产乱人伦av在线a麻豆| 国产精品成人av在线观看| 青草青草久热精品视频国产4| 亚洲人成伊人成综合久久| 狠狠97人人婷婷五月| 亚洲熟妇无码av另类vr影视| 天天射色综合| 深夜福利国产精品中文字幕| 人妻少妇久久久久久97人妻| 色妺妺视频网| 一片内射视频在线观看| 亚洲av香蕉一区二区三区av| 国产精品99久久久久久猫咪| 中文字幕天堂网| av男人操美女一区二区三区| 亚洲av综合国产av日韩| 日本黄页网站免费观看| 成人无码视频在线观看网站| 人妻被公上司喝醉在线中文字幕| 无码人妻一区二区三区免费看| 亚洲人成无码www久久久| 午夜亚洲国产精品福利| 人妖在线一区二区三区| 中文字幕乱码一区av久久不卡| 激情五月婷婷综合| 色老板在线免费观看视频日麻批| 久久精品国产久精国产爱| 亚洲成色www久久网站夜月| 大胸美女吃奶爽死视频| 人妻精品人妻一区二区三区四区 | 国产精品亚洲一二三区| 中文字幕一区日韩精品| 99热免费观看| 久草视频在线播放免费| 亚洲国产精品久久艾草|