王金達(dá) 張勇 王德宇 趙振環(huán) 閆晗
摘 要:CANopen是開放的總線技術(shù),廣泛應(yīng)用于自動(dòng)化生產(chǎn)各個(gè)領(lǐng)域,目前國(guó)內(nèi)CANopen研究滯后,與國(guó)內(nèi)的工業(yè)現(xiàn)場(chǎng)網(wǎng)絡(luò)化進(jìn)程發(fā)展需求不符,本文的研究就是在這樣的背景下,開發(fā)具有通用特性的CANopen從站模塊。在對(duì) CANopen 協(xié)議研究的基礎(chǔ)上,提出了基于STM32的嵌入式從站設(shè)計(jì)方案,并描述了其硬件與軟件的架構(gòu)。
關(guān)鍵詞:CANopen;CANopen從站;嵌入式
引言
CANopen是建立在CAN總線的應(yīng)用層協(xié)議,CAN總線是一種架構(gòu)開放、廣播式的新一代網(wǎng)絡(luò)通信協(xié)議,是針對(duì)汽車電子系統(tǒng)中的數(shù)據(jù)交換而開發(fā)的控制局域網(wǎng)協(xié)議。由于其低成本、高可靠性、高傳輸速度原因,在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用。CAN接口芯片定義物理層和數(shù)據(jù)鏈路層,由于系統(tǒng)使用STM32作為系統(tǒng)主控制芯片,內(nèi)部集成CAN接口芯片,在使用時(shí)接上CAN收發(fā)器即可。CAN網(wǎng)絡(luò)通信協(xié)議僅可以數(shù)據(jù)發(fā)送、接收、錯(cuò)誤處理等底層數(shù)據(jù)傳輸問題,本身并不完整,對(duì)于應(yīng)用層沒有規(guī)定相應(yīng)的解析協(xié)議。為了提高CAN總線效率,實(shí)現(xiàn)更加復(fù)雜、快速、標(biāo)準(zhǔn)化的CAN通信協(xié)議,即CANopen協(xié)議。
CANopen是在CAL基礎(chǔ)上開發(fā)的,使用了CAL通訊和服務(wù)協(xié)議子集,提供了分布式控制系統(tǒng)的一種實(shí)現(xiàn)方案。CAL提供了所有的網(wǎng)絡(luò)管理服務(wù)和報(bào)文傳送協(xié)議,但沒有定義CMS對(duì)象的內(nèi)容或正在通訊的對(duì)象的類型(只定義How,沒有定義What)。CANopen在保證網(wǎng)絡(luò)節(jié)點(diǎn)互用性的同時(shí)允許節(jié)點(diǎn)的功能隨意擴(kuò)展。CANopen的核心概念是設(shè)備的對(duì)象字典,實(shí)現(xiàn)網(wǎng)絡(luò)管理報(bào)文NMT、數(shù)據(jù)對(duì)象SDO、過程數(shù)據(jù)對(duì)象PDO預(yù)定義報(bào)文或者特殊功能對(duì)象核心報(bào)文。
1 CANopen從站模塊設(shè)計(jì)
本文中CANopen從站模塊是采用ST公司的STM32運(yùn)行在?COS II上來實(shí)現(xiàn)與主站CAN通訊,并具備對(duì)CANopen協(xié)議報(bào)文分析和打包的功能得以實(shí)現(xiàn)與主站之間的數(shù)據(jù)傳輸和處理。主站方面,應(yīng)用高級(jí)應(yīng)用程序開發(fā)軟件編制具備CANopen接口的人機(jī)交互界面,使用測(cè)試工具CANalyst-II 來實(shí)現(xiàn)主站的傳輸和調(diào)試。
2 CANopen從站硬件系統(tǒng)
本文中CANopen從站采用以STM32F103RET6為核心的硬件系統(tǒng),主要負(fù)責(zé)CAN通訊與CANopen協(xié)議轉(zhuǎn)換功能,從站還具有輸入、輸出和通訊等功能。
由于微控制器芯片內(nèi)嵌了完全兼容CAN2.0B的CAN總線控制器,因此硬件系統(tǒng)中的CAN接口電路得到了簡(jiǎn)化,只需設(shè)計(jì)CAN總線收發(fā)器電路即可。設(shè)計(jì)中使用了外接隔離型CAN總線收發(fā)器,防止總線對(duì)從站的干擾,避免核心電路損壞。從站系統(tǒng)除了核心最小系統(tǒng)外,還有模擬量的輸入輸出、數(shù)字量輸入輸出、外存儲(chǔ)器、CAN接口、串口、JTAG接口和電源等子電路。硬件系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。
圖1 硬件電路整體結(jié)構(gòu)框圖
2.1 STM32最小系統(tǒng)
STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。本系統(tǒng)采用STM32F103RET6做為系統(tǒng)主芯片,具有64K的片內(nèi)RAM,512K的片內(nèi)flash。系統(tǒng)時(shí)鐘頻率可工作在72MHz,若從flash執(zhí)行代碼,STM32功耗僅36mA。STM32內(nèi)部集成高性能外設(shè),如1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻轉(zhuǎn)速度,內(nèi)部具有8MHz的RC震蕩,可經(jīng)過倍頻后直接作為系統(tǒng)時(shí)鐘。STM32提供了一個(gè)SysTick定時(shí)器,可以提供操作系統(tǒng)運(yùn)行節(jié)拍。
2.2 CAN驅(qū)動(dòng)器
CAN收發(fā)器(也就是協(xié)議控制器)的作用就是完成數(shù)據(jù)鏈路層組幀和生成物理層比特流,驅(qū)動(dòng)器的作用是把控制器輸出的高低邏輯電平變成CAN總線的差分式電平。STM32內(nèi)部有CAN收發(fā)器,所以,不用考慮該部分硬件設(shè)計(jì)。協(xié)議相關(guān)的內(nèi)容基本都由協(xié)議控制器完成,軟件上只要配置需要的通信速率、幀ID以及發(fā)送的數(shù)據(jù)內(nèi)容,然后通知收發(fā)器,讓它發(fā)送就可以。不需要從軟件上編寫協(xié)議。
2.3 串口模塊
MAX3232用于顯示系統(tǒng)調(diào)試相關(guān)信息,包括錯(cuò)誤提示信息,接收數(shù)據(jù)信息,系統(tǒng)運(yùn)行狀態(tài)。它是一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口RS232電平是+10v~-10v,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號(hào)電壓是TTL電平0~+5v,MAX3232就是用來進(jìn)行電平轉(zhuǎn)換的。
2.4 其他功能模塊
從站可以實(shí)現(xiàn)模AD和DA功能、數(shù)字量的輸入輸出模塊、存儲(chǔ)器模塊、串口功能,在STM32內(nèi)部集成有多路AD和DA,可以很經(jīng)濟(jì)和快捷的實(shí)現(xiàn)以上功能,利用內(nèi)置的SPI和I2C可以連接外存儲(chǔ)器,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),利用內(nèi)置的UART模塊可以實(shí)現(xiàn)工業(yè)串口通訊。所以,在擴(kuò)展必要的外部輔助電路接口以后,就可以實(shí)現(xiàn)以上幾個(gè)外設(shè)功能。
3 CANopen從站軟件系統(tǒng)
從站軟件系統(tǒng)采用C語言開發(fā)嵌入式操作系統(tǒng)?COS-II下的應(yīng)用,實(shí)現(xiàn)與主站的CANopen接口通訊,同時(shí)對(duì)模擬量數(shù)據(jù)的采集和輸出、數(shù)字量信號(hào)的輸入輸出、串口通訊以及系統(tǒng)參數(shù)的存儲(chǔ)等功能也都一并實(shí)現(xiàn);主站采用高級(jí)應(yīng)用程序開發(fā)軟件開發(fā)具備CANopen接口的人機(jī)交互界面,實(shí)現(xiàn)對(duì)從站的控制。
根據(jù)系統(tǒng)結(jié)構(gòu),從站系統(tǒng)可以劃分為五大模塊:CANopen通信模塊、模擬量采集和輸出模塊、數(shù)字量輸入輸出模塊、存儲(chǔ)器模塊、串口模塊,系統(tǒng)設(shè)計(jì)的重點(diǎn)是CAN及CANopen的收發(fā)函數(shù),以及在?滋COS-II下實(shí)現(xiàn)CANopen協(xié)議的對(duì)象字典和相應(yīng)功能。在實(shí)現(xiàn)核心功能后,設(shè)計(jì)幾個(gè)外設(shè)功能模塊,提供采集、控制、通信、存儲(chǔ)功能,使系統(tǒng)更加完整和實(shí)用化備。軟件系統(tǒng)的工作流程如圖2所示。
圖2 軟件設(shè)計(jì)框圖
4 結(jié)束語
通過整體設(shè)計(jì)及調(diào)試,利用CANopen高層協(xié)議完成了從站與主站之間的數(shù)據(jù)傳輸以及STM32與各模塊之間的聯(lián)系,并且采用C語言開發(fā)嵌入式操作系統(tǒng)?COS-II下的應(yīng)用來實(shí)現(xiàn)數(shù)據(jù)的采集處理,與主站進(jìn)行通訊等相關(guān)內(nèi)容,具有較好的系統(tǒng)框架,系統(tǒng)穩(wěn)定性較好。設(shè)計(jì)完成的從站系統(tǒng)具有較好的通用性和實(shí)用性,市場(chǎng)前景較好。