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