基于C8051的CAN多點(diǎn)實(shí)時(shí)數(shù)據(jù)通信系統(tǒng)
2 C8051 F040單片機(jī)
Cygnal公司的51系列單片機(jī)C8051F040是集成在一塊芯片上的混合信號(hào)系統(tǒng)級(jí)單片機(jī),在一個(gè)芯片內(nèi)集成了構(gòu)成一個(gè)單片機(jī)數(shù)據(jù)采集或控制的智能節(jié)點(diǎn)所需要的幾乎所有模擬、數(shù)字外設(shè)以及其他功能部件,代表了目前8位單片機(jī)控制系統(tǒng)的發(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串行接口、完全支持CAN2.0A和CAN2.0B的CAN控制器。
3 CAN多點(diǎn)實(shí)時(shí)數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)
3.1 CAN多點(diǎn)實(shí)時(shí)數(shù)據(jù)通信系統(tǒng)硬件結(jié)構(gòu)
設(shè)計(jì)的CAN多點(diǎn)實(shí)時(shí)數(shù)據(jù)通信系統(tǒng)由一臺(tái)電腦,兩塊基于C8051F040單片機(jī)開(kāi)發(fā)板組成。結(jié)構(gòu)框圖如圖2所示。本文引用地址:http://butianyuan.cn/article/155286.htm
在這個(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)分別為開(kāi)發(fā)板1和開(kāi)發(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ù)顯示在開(kāi)發(fā)板的LCD屏上。
3.2 軟件設(shè)計(jì)
軟件設(shè)計(jì)分為兩大部分:(1)主程序的設(shè)計(jì)。(2)CAN通信庫(kù)函數(shù)程序的編寫。
主程序主要涉及的是程序流程,包括調(diào)用初始化函數(shù),打開(kāi)中斷,根據(jù)與主機(jī)通信還是與其他節(jié)點(diǎn)通信調(diào)用CAN通信庫(kù)函數(shù)編寫出相應(yīng)的通信流程,流程圖如圖3所示。
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)論