在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的CAN總線(xiàn)通信接口的設(shè)計(jì)

            基于FPGA的CAN總線(xiàn)通信接口的設(shè)計(jì)

            作者: 時(shí)間:2010-12-14 來(lái)源:網(wǎng)絡(luò) 收藏


            2.3 CY7C68013A通信控制程序
            CY7C68013A提供一種量子FIFO的處理架構(gòu),使USB接口和應(yīng)用環(huán)境直接共享內(nèi)部含有的4 K FIF0空間。本文CY7C68013A的控制是以異步SLAVE FIFO方式實(shí)現(xiàn)的,對(duì)CY7C68013A的邏輯控制實(shí)際上是對(duì)CY7C68013A內(nèi)部FIFO的異步讀寫(xiě)控制。設(shè)置CY7C68013A端點(diǎn)2為批量輸入端點(diǎn)(FIF0地址為00),端點(diǎn)6為批量輸出端點(diǎn)(FIF0地址為1O)。判斷CY7C68013A的PA[1:0]端口電平,當(dāng)PA[1:0]為01時(shí),將接收到的總線(xiàn)數(shù)據(jù)寫(xiě)入端點(diǎn)2對(duì)應(yīng)的FIF0空間并上傳給上位機(jī),PA[1:0]為10時(shí),F(xiàn)PGA讀取端點(diǎn)6對(duì)應(yīng)的FIFO內(nèi)數(shù)據(jù)。FPGA對(duì)CY7C68013A的時(shí)序控制嚴(yán)格按照芯片手冊(cè)完成。
            由于USB數(shù)據(jù)包與數(shù)據(jù)幀是基于兩種不同協(xié)議的數(shù)據(jù)格式,因此在FPGA內(nèi)開(kāi)辟了2個(gè)512x8bit的FIFO緩存,并要進(jìn)行必要的格式轉(zhuǎn)換。例如,當(dāng)從USB總線(xiàn)端注入的數(shù)據(jù)大于8字節(jié)時(shí),需要將數(shù)據(jù)分成多幀傳送給總線(xiàn);當(dāng)數(shù)據(jù)小于8字節(jié)時(shí)則在數(shù)據(jù)后填充0。另外,在數(shù)據(jù)傳送給CAN總線(xiàn)之前還需要添加適當(dāng)?shù)膸畔⑴c幀識(shí)別碼。

            3 軟件設(shè)計(jì)
            3.1 USB固件程序

            USB固件程序是在Keil工具上開(kāi)發(fā)完成的,除了進(jìn)行必要的端點(diǎn)及寄存器配置外,程序中使用了自定義請(qǐng)求命令。自定義請(qǐng)求碼通過(guò)USB控制傳輸?shù)姆绞絺魉徒o固件,固件程序需要響應(yīng)自定義請(qǐng)求碼的請(qǐng)求信息。本文使用的自定義請(qǐng)求碼為Oxa8,在響應(yīng)代碼中設(shè)置端口PA[1:0]電平值,產(chǎn)生USB控制命令,代碼如下所示。SETUPDAT[2]對(duì)應(yīng)控制傳輸端點(diǎn)的Value值,由上位機(jī)應(yīng)用程序設(shè)定。

            3.2 USB驅(qū)動(dòng)程序及應(yīng)用程序
            使用CYPRESS公司提供的CY7C68013A通用驅(qū)動(dòng)程序CyUSB.sys。上位機(jī)應(yīng)用程序使用VC編寫(xiě),也是基于Cypress提供的C++類(lèi)庫(kù)文件CyAP-I.lib設(shè)計(jì)完成的。使用的主要函數(shù)包括:BeginDataXfer、FinishDataXfer、XferData等函數(shù)。應(yīng)用程序中設(shè)計(jì)了獨(dú)立的數(shù)據(jù)接收線(xiàn)程,線(xiàn)程函數(shù)中不斷地發(fā)送USB數(shù)據(jù)讀命令,并完成批量輸人端點(diǎn)的讀操作。當(dāng)有數(shù)據(jù)讀入時(shí),與主線(xiàn)程之間采用事件的線(xiàn)程同步方式,將數(shù)據(jù)讀入計(jì)算機(jī)內(nèi)存并保存。以下是線(xiàn)程函數(shù)中用于發(fā)送USB控制命令的控制傳輸代碼:


            4 實(shí)驗(yàn)調(diào)試與結(jié)果
            為驗(yàn)證設(shè)計(jì)的正確性,使用了周立功公司的USBCAN-I產(chǎn)品,與目標(biāo)電路板組成雙節(jié)點(diǎn)通信,2個(gè)節(jié)點(diǎn)設(shè)置相同波特率500 Kb/s(BTRO= 00,BTR1=1Ch)和相同幀格式,由測(cè)試軟件ZLGCANTest發(fā)送一組數(shù)據(jù)(eOh,e1h,……,e7h),上位機(jī)應(yīng)用程序接收到的數(shù)據(jù)如圖7所示。反過(guò)來(lái)由上位機(jī)應(yīng)用程序注入指令數(shù)據(jù)e0h,a8h,周立功軟件接收到的數(shù)據(jù)為e0h,a8h,00h,OOh……。經(jīng)實(shí)驗(yàn)表明,數(shù)據(jù)收發(fā)正確,近距離通信時(shí),通信速率可高達(dá)1 Mb/s。



            5 結(jié)論
            使用該方法設(shè)計(jì)的CAN總線(xiàn)轉(zhuǎn)換器優(yōu)點(diǎn)在于:使用USB總線(xiàn)完成CAN總線(xiàn)與計(jì)算機(jī)的數(shù)據(jù)交換,不會(huì)影響CAN總線(xiàn)的整體通信速率;通過(guò)FPGA控制完成通信,可擴(kuò)展性好,靈活性強(qiáng),穩(wěn)定性高。作為空間相機(jī)下位機(jī)地檢設(shè)備的一部分,F(xiàn)PGA同時(shí)還可以完成RS422等總線(xiàn)的通信控制。


            上一頁(yè) 1 2 3 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉