基于C8051的CAN多點實時數(shù)據(jù)通信系統(tǒng)
2 C8051 F040單片機
Cygnal公司的51系列單片機C8051F040是集成在一塊芯片上的混合信號系統(tǒng)級單片機,在一個芯片內(nèi)集成了構(gòu)成一個單片機數(shù)據(jù)采集或控制的智能節(jié)點所需要的幾乎所有模擬、數(shù)字外設(shè)以及其他功能部件,代表了目前8位單片機控制系統(tǒng)的發(fā)展方向。芯片上有1個12位多通道ADC,2個12位DAC,2個電壓比較器,1個電壓基準(zhǔn),1個32 kB的Flash存儲器,與MCS-51指令集完全兼容的高速CIP-51內(nèi)核,峰值速度可達25 MI·s-1,并且還有硬件實現(xiàn)的UART串行接口、完全支持CAN2.0A和CAN2.0B的CAN控制器。
3 CAN多點實時數(shù)據(jù)通信系統(tǒng)設(shè)計
3.1 CAN多點實時數(shù)據(jù)通信系統(tǒng)硬件結(jié)構(gòu)
設(shè)計的CAN多點實時數(shù)據(jù)通信系統(tǒng)由一臺電腦,兩塊基于C8051F040單片機開發(fā)板組成。結(jié)構(gòu)框圖如圖2所示。本文引用地址:http://m.butianyuan.cn/article/155286.htm
在這個系統(tǒng)中,電腦作為主機,通過USB/CAN轉(zhuǎn)換器與CAN總線相連,使用軟件工具CANTools-V6.2進行數(shù)據(jù)地發(fā)送、接收以及顯示。系統(tǒng)中兩個CAN節(jié)點分別為開發(fā)板1和開發(fā)板2,通過編譯相應(yīng)的程序,使得CAN節(jié)點能實時把數(shù)據(jù)發(fā)送到主機,主機可根據(jù)接收到的數(shù)據(jù)向CAN節(jié)點發(fā)出控制信號來改變CAN節(jié)點回發(fā)的數(shù)據(jù),以此達到實時通信控制的目的。同時兩個CAN節(jié)點之間也能互相進行數(shù)據(jù)通信,并把所接收到的數(shù)據(jù)顯示在開發(fā)板的LCD屏上。
3.2 軟件設(shè)計
軟件設(shè)計分為兩大部分:(1)主程序的設(shè)計。(2)CAN通信庫函數(shù)程序的編寫。
主程序主要涉及的是程序流程,包括調(diào)用初始化函數(shù),打開中斷,根據(jù)與主機通信還是與其他節(jié)點通信調(diào)用CAN通信庫函數(shù)編寫出相應(yīng)的通信流程,流程圖如圖3所示。
CAN通信庫函數(shù)主要包括:系統(tǒng)初始化函數(shù)、CAN初始化函數(shù)、CAN中斷服務(wù)函數(shù)、CAN接收數(shù)據(jù)函數(shù)和CAN發(fā)送數(shù)據(jù)函數(shù)。
這里詳細講述CAN通信庫函數(shù)中,CAN接收數(shù)據(jù)函數(shù)、CAN發(fā)送數(shù)據(jù)函數(shù)和CAN中斷服務(wù)函數(shù)。
評論