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

    EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于C8051的CAN多點(diǎn)實(shí)時(shí)數(shù)據(jù)通信系統(tǒng)

    基于C8051的CAN多點(diǎn)實(shí)時(shí)數(shù)據(jù)通信系統(tǒng)

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

    2 F040單片機(jī)
    Cygnal公司的51系列單片機(jī)F040是集成在一塊芯片上的混合信號(hào)級(jí)單片機(jī),在一個(gè)芯片內(nèi)集成了構(gòu)成一個(gè)單片機(jī)數(shù)據(jù)采集或控制的智能節(jié)點(diǎn)所需要的幾乎所有模擬、數(shù)字外設(shè)以及其他功能部件,代表了目前8位單片機(jī)控制的發(fā)展方向。芯片上有1個(gè)12位多通道ADC,2個(gè)12位DAC,2個(gè)電壓比較器,1個(gè)電壓基準(zhǔn),1個(gè)32 kB的Flash存儲(chǔ)器,與MCS-51指令集完全兼容的高速CIP-51內(nèi)核,峰值速度可達(dá)25 MI·s-1,并且還有硬件實(shí)現(xiàn)的UART串行接口、完全支持2.0A和2.0B的控制器。

    3 CAN多點(diǎn)設(shè)計(jì)
    3.1 CAN多點(diǎn)系統(tǒng)硬件結(jié)構(gòu)
    設(shè)計(jì)的CAN多點(diǎn)系統(tǒng)由一臺(tái)電腦,兩塊F040單片機(jī)開發(fā)板組成。結(jié)構(gòu)框圖如圖2所示。

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

    b.jpg


    在這個(gè)系統(tǒng)中,電腦作為主機(jī),通過(guò)USB/CAN轉(zhuǎn)換器與CAN總線相連,使用軟件工具CANTools-V6.2進(jìn)行數(shù)據(jù)地發(fā)送、接收以及顯示。系統(tǒng)中兩個(gè)CAN節(jié)點(diǎn)分別為開發(fā)板1和開發(fā)板2,通過(guò)編譯相應(yīng)的程序,使得CAN節(jié)點(diǎn)能實(shí)時(shí)把數(shù)據(jù)發(fā)送到主機(jī),主機(jī)可根據(jù)接收到的數(shù)據(jù)向CAN節(jié)點(diǎn)發(fā)出控制信號(hào)來(lái)改變CAN節(jié)點(diǎn)回發(fā)的數(shù)據(jù),以此達(dá)到實(shí)時(shí)通信控制的目的。同時(shí)兩個(gè)CAN節(jié)點(diǎn)之間也能互相進(jìn)行數(shù)據(jù)通信,并把所接收到的數(shù)據(jù)顯示在開發(fā)板的LCD屏上。
    3.2 軟件設(shè)計(jì)
    軟件設(shè)計(jì)分為兩大部分:(1)主程序的設(shè)計(jì)。(2)CAN通信庫(kù)函數(shù)程序的編寫。
    主程序主要涉及的是程序流程,包括調(diào)用初始化函數(shù),打開中斷,根據(jù)與主機(jī)通信還是與其他節(jié)點(diǎn)通信調(diào)用CAN通信庫(kù)函數(shù)編寫出相應(yīng)的通信流程,流程圖如圖3所示。

    c.jpg


    CAN通信庫(kù)函數(shù)主要包括:系統(tǒng)初始化函數(shù)、CAN初始化函數(shù)、CAN中斷服務(wù)函數(shù)、CAN接收數(shù)據(jù)函數(shù)和CAN發(fā)送數(shù)據(jù)函數(shù)。
    這里詳細(xì)講述CAN通信庫(kù)函數(shù)中,CAN接收數(shù)據(jù)函數(shù)、CAN發(fā)送數(shù)據(jù)函數(shù)和CAN中斷服務(wù)函數(shù)。



    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 灵山县| 修武县| 顺平县| 涟源市| 化州市| 涞水县| 萍乡市| 电白县| 台中市| 瑞丽市| 桃园市| 河源市| 繁昌县| 千阳县| 东台市| 九寨沟县| 平湖市| 醴陵市| 民乐县| 普兰店市| 九龙县| 喀喇沁旗| 龙川县| 通榆县| 南城县| 土默特左旗| 望城县| 靖安县| 凤台县| 和静县| 麻栗坡县| 仪陇县| 孙吴县| 寿光市| 潼南县| 子洲县| 临汾市| 赣榆县| 大丰市| 永和县| 伊吾县|