• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的數(shù)據(jù)通信采集系統(tǒng)設(shè)計(jì)

    基于CAN總線的數(shù)據(jù)通信采集系統(tǒng)設(shè)計(jì)

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

    (Controller Area Network)即控制器局域網(wǎng),主要用于各種設(shè)備檢測(cè)及控制的一種現(xiàn)場(chǎng)。20 世紀(jì)80 年代初,德國(guó)BOSCH 公司為解決現(xiàn)代汽車(chē)中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換, 開(kāi)發(fā)了一種串行協(xié)議,即

    本文引用地址:http://www.czjhyjcfj.com/article/148364.htm

    1.jpg

    1.1 硬件:

    由于TI 公司的TMS320F2812 型DSP 在軍事上已有應(yīng)用, 且根據(jù)各種性能的比較, 本采用TMS320F2812 型DSP 作為導(dǎo)航計(jì)算機(jī),進(jìn)行下位機(jī)的數(shù)據(jù)發(fā)送,其中e 模塊是TMS320F2812 DSP 片上的增強(qiáng)型CAN 控制器, 其性能較之已有的DSP 內(nèi)嵌CAN 控制器有較大的提高, 數(shù)據(jù)傳輸更加靈活方便,數(shù)據(jù)量更大,可靠性更高,功能更加完備。

    上位機(jī)采用工控機(jī), 其中由ADLINK 的PCI/cPCI-7841CAN 接口卡進(jìn)行數(shù)據(jù)接收。該卡可同時(shí)操作兩個(gè)獨(dú)立的CAN 網(wǎng)絡(luò),可編程傳輸速率可高達(dá)1 Mb/s,通過(guò)直接內(nèi)存映射能夠快速訪問(wèn)CAN 控制器,PCI 總線即插即用, 其總線控制器為SJA1000,電氣接口為82C250。

    信息的信息通信利用CAN 總線完成, 其CAN總線接口電路如圖2 所示, 其中獨(dú)特之處是在收發(fā)器PCA82C250 的輸出引腳CANH 和CANL 之間并聯(lián)一個(gè)終端電阻R 為120 Ω,解決了遠(yuǎn)近端阻抗不匹配的影響。

    如圖1 所示,由TMS320F2812 DSP 的eCAN 模塊發(fā)送陀螺組合數(shù)據(jù)及溫度值等, 上位機(jī)的PCI/cPCI-7841 型CAN 總線接口卡進(jìn)行數(shù)據(jù)接收,從而完成整個(gè)信息及監(jiān)測(cè)過(guò)程。

    1.2 系統(tǒng)軟件:

    系統(tǒng)軟件主要完成CAN 總線的, 并在接收數(shù)據(jù)之后按要求對(duì)的導(dǎo)航數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換成實(shí)際所需數(shù)據(jù)類(lèi)型,對(duì)陀螺組合的狀態(tài)進(jìn)行監(jiān)測(cè)。

    本系統(tǒng)CAN 總線通信報(bào)文格式采用CAN2.0B 擴(kuò)展模式,通信數(shù)據(jù)格式主要是對(duì)CAN 總線協(xié)議中的(仲裁場(chǎng)ArbitrationField)和(數(shù)據(jù)場(chǎng)Data Field)進(jìn)行定義,要求數(shù)據(jù)傳輸速率為500 Kb/s。協(xié)議幀格式如圖3 所示。

    系統(tǒng)的接收軟件流程圖如圖4 所示。

    在使用CAN 接口卡之前首先要對(duì)卡進(jìn)行波特率、傳輸報(bào)文格式等參數(shù)的初始化。

    1) 初始化CAN 總線的傳輸報(bào)文格式為提供29 位地址的CAN2.0B 擴(kuò)展模式;2) 初始化CAN 總線的波特率為500 Kb/s。

    利用PCI/cPCI -7841CAN 接口卡的CanOpen-Driver () 函數(shù)打開(kāi)CAN 端口, 用CanConfigPort () 函數(shù)進(jìn)行初始化,用CanSendMsg()函數(shù)發(fā)送數(shù)據(jù)包,用Can-RcvMsg()函數(shù)接收數(shù)據(jù)包,用CanCloseDriver () 函數(shù)關(guān)閉端口[3]。創(chuàng)建接收線程,接收數(shù)據(jù)之后按要求對(duì)數(shù)據(jù)進(jìn)行處理。應(yīng)用MFC 制作通信界面。注意,線程函數(shù)只能是靜態(tài)成員函數(shù),或者是在類(lèi)外面聲明的一個(gè)函數(shù)。


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

    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 丰顺县| 吴忠市| 许昌县| 咸丰县| 沐川县| 咸丰县| 靖州| 全州县| 梅州市| 广德县| 沁阳市| 依安县| 九龙坡区| 武安市| 西乌珠穆沁旗| 兴海县| 诸城市| 白朗县| 舒兰市| 德令哈市| 兴安县| 德令哈市| 阜新市| 甘南县| 腾冲县| 富源县| 蓝山县| 新田县| 万安县| 家居| 黄大仙区| 阳春市| 青铜峡市| 平昌县| 固阳县| 岳西县| 海晏县| 运城市| 资溪县| 云和县| 长沙市|