新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的CAN總線(xiàn)通信接口的設(shè)計(jì)

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

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

          是現(xiàn)場(chǎng)總線(xiàn)的一種,因?yàn)槠涑杀镜汀⑷蒎e(cuò)能力強(qiáng)、支持分布式控制、通信速率高等優(yōu)點(diǎn)在汽車(chē)、工業(yè)控制、航天等領(lǐng)域得到廣泛應(yīng)用。但是計(jì)算機(jī)沒(méi)有接口,為了進(jìn)行的調(diào)試,必須具有專(zhuān)用的適配卡才能實(shí)現(xiàn)與計(jì)算機(jī)的通信。目前常用的CAN轉(zhuǎn)換器是基于單片機(jī)設(shè)計(jì)的,一般只適用于單路CAN總線(xiàn)的數(shù)據(jù)轉(zhuǎn)換,可擴(kuò)展性差。

          在小衛(wèi)星相機(jī)下位機(jī)系統(tǒng)中使用了多種總線(xiàn),如CAN總線(xiàn)與衛(wèi)星管理計(jì)算機(jī)的通信;RS422(或RS485)總線(xiàn)與成像單元等下行單元的通信。在進(jìn)行相機(jī)下位機(jī)系統(tǒng)地面調(diào)試時(shí),可能需要多種總線(xiàn)轉(zhuǎn)換器。采用將不同總線(xiàn)協(xié)議轉(zhuǎn)換成USB2.0、RS232等可與計(jì)算機(jī)直接交換數(shù)據(jù)的協(xié)議,可增強(qiáng)設(shè)計(jì)的靈活性,降低設(shè)計(jì)的成本和復(fù)雜性,且可實(shí)現(xiàn)多路總線(xiàn)的數(shù)據(jù)

          這里以CAN總線(xiàn)為例,詳細(xì)論述了基于的CAN總線(xiàn)轉(zhuǎn)換USB接口的設(shè)計(jì)方案。

          1 系統(tǒng)硬件組成

          實(shí)現(xiàn)CAN總線(xiàn)與計(jì)算機(jī)雙向的核心是。它首先接收來(lái)自CAN總線(xiàn)的數(shù)據(jù),保存在FPGA內(nèi)部設(shè)計(jì)的FIF0緩存中,經(jīng)過(guò)內(nèi)部數(shù)據(jù)格式的轉(zhuǎn)換后,由USB控制器讀取并上傳給計(jì)算機(jī)。而總線(xiàn)數(shù)據(jù)注入過(guò)程的數(shù)據(jù)流向與之相反。FPCA選用Xilinx公司的Spartan3的XC3S200,系統(tǒng)硬件結(jié)構(gòu)如圖l所示。

        系統(tǒng)硬件結(jié)構(gòu)

          1.1 USB接口電路

          USB是一種支持即插即用及熱插拔的串行總線(xiàn),它具有傳輸速率高、連接靈活、使用方便等優(yōu)點(diǎn)。CYPRESS公司的EZ-USB芯片CY7C68013A支持USB2.0協(xié)議,通信可靠,傳輸速率可達(dá)480 Mb/s。CY7C68013A工作在SLAVE FIF0異步通信方式下,接口電路如圖2所示。

        接口電路

          SLAVE FIFO異步寫(xiě)周期中,高電平需維持70ns,低電平需維持50ns,理論最高傳輸速率為8Mb/s,而CAN總線(xiàn)的最高傳輸速率為1Mb/s,符合通信要求。端口PA0~PA1用作USB控制器端向FPGA發(fā)送讀寫(xiě)命令的控制線(xiàn),由USB固件程序配合上位機(jī)端自定義請(qǐng)求代碼產(chǎn)生PA端口的控制信號(hào)。另外使用了EEPROM芯片24LC128存放USB固件程序。


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

        關(guān)鍵詞: FPGA CAN總線(xiàn) 通信接口

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 肇源县| 颍上县| 水富县| 财经| 盐津县| 汝州市| 闵行区| 彭山县| 乐都县| 嵊州市| 仙桃市| 镇雄县| 江油市| 临夏县| 四子王旗| 友谊县| 南丰县| 苍山县| 奉新县| 和龙市| 武威市| 屯门区| 中方县| 梅河口市| 湘西| 瑞丽市| 平阴县| 巴青县| 宜春市| 西安市| 泗阳县| 东光县| 翁源县| 浑源县| 山东省| 兴文县| 安塞县| 平陆县| 济宁市| 马公市| 太原市|