在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ATmega8515的USB-CAN適配器的實(shí)現(xiàn)

            基于ATmega8515的USB-CAN適配器的實(shí)現(xiàn)

            作者: 時(shí)間:2013-10-26 來源:網(wǎng)絡(luò) 收藏


            圖2  USB2CAN數(shù)據(jù)傳輸處理框圖

            2  的軟件設(shè)計(jì)

               軟件包括兩部分:中的固件和PC機(jī)內(nèi)USB2CAN適配器的驅(qū)動(dòng)軟件.

            2. 1  適配器固件編程
              良好的開發(fā)環(huán)境是開發(fā)單片機(jī)軟件質(zhì)量和速度的保證.USB2CAN 適配器采用GNU AVR 的最新版本W(wǎng)inAVR 編程,它能夠?qū)λ蠥VR 單片機(jī)用C 或C + + 語言進(jìn)行編程,且能在WIN2000 下運(yùn)行.

              USB-CAN 適配器固件設(shè)計(jì)成完全的中斷驅(qū)動(dòng),當(dāng)處理前臺(tái)任務(wù)時(shí),USB 和CAN 的傳輸可以在后臺(tái)同時(shí)進(jìn)行,大大提高了實(shí)際傳輸效率,編程和調(diào)試亦很方便. 后臺(tái)的中斷處理子程序通過設(shè)置事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來實(shí)現(xiàn)和前臺(tái)主程序之間的數(shù)據(jù)交換(如圖2 所示) .當(dāng)檢測(cè)到CAN 控制器的狀態(tài)寄存器而得知接收緩沖CANRX-Buffer有數(shù)據(jù),就會(huì)把數(shù)據(jù)傳到USB 控制器空閑發(fā)送緩沖區(qū)TXFIFO-1或TXFIFO-2中; 同樣, 當(dāng)USB控制器的接收緩沖區(qū)RXFIFO-1或RXFIFO-2充滿數(shù)據(jù)時(shí),ATmega8515就會(huì)把RXFIFO-1或RXFIFO-2的數(shù)據(jù)讀到內(nèi)部一個(gè)連續(xù)的RAM空間,當(dāng)CAN總線控制器發(fā)送緩沖區(qū)CAN-TX-Buffer 為空時(shí),再把數(shù)據(jù)從RAM傳到CAN-TX-Buffer.

              USB -CAN適配器固件設(shè)計(jì)中采用乒乓緩存法提高實(shí)際傳輸速率. USBN9603有7個(gè)端點(diǎn), 通常FIFO內(nèi)的數(shù)據(jù)進(jìn)行傳送或接收時(shí)每個(gè)端點(diǎn)對(duì)應(yīng)一個(gè)管道,但是,兩個(gè)同方向傳輸數(shù)據(jù)的端點(diǎn)也可以利用一個(gè)管道,這樣可以有效地提高數(shù)據(jù)的傳輸率,因?yàn)楫?dāng)?shù)谝粋€(gè)端點(diǎn)的FIFO傳輸數(shù)據(jù)時(shí),微處理器可以對(duì)第二個(gè)端點(diǎn)的FIFO進(jìn)行數(shù)據(jù)讀或?qū)?反之亦然.

              USBN9603 在進(jìn)行批量傳輸時(shí),其實(shí)際傳輸率大約是512kb/s ,這往往是由于主機(jī)的控制器最大每幀數(shù)據(jù)包數(shù)量限制造成的,而并非USBN9603本身傳輸性能. 其它傳輸方式,如中斷傳輸、同步傳輸、控制傳輸?shù)淖罡邆鬏斔俾蕿?.5Mb/s. 采用乒乓緩存法后,可使傳輸速率提高一倍,從而使傳輸速率為1Mb/s 的CAN總線控制器沒有等待接收數(shù)據(jù)和發(fā)送數(shù)據(jù)空間的情況,解決了數(shù)據(jù)傳輸中的“瓶頸”問題.在USB-CAN 適配器中,端點(diǎn)EP1 (TXFIFO-1) 和EP3 (TXFIFO-2)發(fā)送數(shù)據(jù)到主機(jī),EP2(RXFIFO-1) 和EP4(RXFIFO-2)從主機(jī)接收數(shù)據(jù)(如圖2 所示) ,其FIFO中的數(shù)據(jù)長度都是64字節(jié). 在主機(jī)進(jìn)行枚舉過程中,當(dāng)節(jié)點(diǎn)接收到配置設(shè)備請(qǐng)求,固件程序就可以把EP1/EP3和EP2/EP4分別分配到同一個(gè)端點(diǎn)地址.USBN9603 內(nèi)置有一個(gè)優(yōu)先級(jí)表,如果多個(gè)端點(diǎn)編程指定為同一個(gè)端點(diǎn)號(hào),具有較低號(hào)的端點(diǎn)(利用TOGGL 標(biāo)志區(qū)分高低)首先得到響應(yīng)和數(shù)據(jù).

            2. 1. 1  數(shù)據(jù)上傳
              當(dāng)主機(jī)發(fā)送一個(gè)IN 令牌給USB-CAN 適配器,適配器就開始向PC機(jī)發(fā)送數(shù)據(jù). 圖3 為數(shù)據(jù)上傳的流程圖. 通過兩個(gè)標(biāo)志UPDATE1 和UPDATE2 把主程序和Tx 中斷子程序緊密聯(lián)系起來,體現(xiàn)了前臺(tái)后臺(tái)程序設(shè)計(jì)思想. 當(dāng)UPDATE1 清0 ,上傳數(shù)據(jù)完畢;當(dāng)置1 時(shí),開始傳輸下一批數(shù)據(jù). 圖4為EP1的Tx中斷子程序流程圖,UPDATE1 在該中斷子程序置1.UPDATE2的運(yùn)行和UPDATE1相似.

            圖3  主程序處理上傳送FIFO 數(shù)據(jù)流程

            圖4  EP1 的Tx 中斷子程序流程


            2. 1. 2  數(shù)據(jù)下傳
              當(dāng)主機(jī)發(fā)送一個(gè)OUT令牌給USB2CAN適配器,適配器就開始接收PC發(fā)送的數(shù)據(jù),并將其暫存在ATmega8515 的RAM中,然后傳到CAN總線控制器的數(shù)據(jù)發(fā)送緩沖區(qū)CAN.TX.Buffer. 圖5 為EP2的Rx中斷子程序流程,顯示了PC的數(shù)據(jù)如何傳到CAN總線的發(fā)送緩沖區(qū). 端點(diǎn)EP4 的Rx 中斷子程序流程和EP2的相似.


            關(guān)鍵詞: ATmega8515 USB-CAN 適配器

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉