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