蔡長(zhǎng)安,鐘 銳,姜錦凱
(1.江蘇鹽城師范學(xué)院,鹽城 224002;2.東南大學(xué),南京 210096;3.淮安市氣象局,223001)
基于SEP3203的CAN總線通信設(shè)計(jì)與開(kāi)發(fā)*
——基于Probit模型和Anova模型
蔡長(zhǎng)安1,鐘 銳2,姜錦凱3
(1.江蘇鹽城師范學(xué)院,鹽城 224002;2.東南大學(xué),南京 210096;3.淮安市氣象局,223001)
簡(jiǎn)要分析了SEP3203微處理器、MCP2515控制器、MCP2551總線收發(fā)器,介紹了利用芯片SEP3203擴(kuò)展CAN接口的方法——利用SPI接口擴(kuò)展CAN總線接口,給出了CAN總線接口的軟硬件設(shè)計(jì)及其應(yīng)用,測(cè)試結(jié)果表明是方案是可行的。
SEP3203;總線接口;嵌入式系統(tǒng)
隨著Internet技術(shù)的持續(xù)發(fā)展,控制系統(tǒng)與網(wǎng)絡(luò)通信系統(tǒng)的集成已成為控制網(wǎng)絡(luò)技術(shù)的一個(gè)熱點(diǎn),作為網(wǎng)絡(luò)化系統(tǒng)的重要組成部分現(xiàn)場(chǎng)總線系統(tǒng),近年來(lái)在實(shí)際控制系統(tǒng)中得到了廣泛的應(yīng)用。CAN(Controller Area Network)總線具有一種可靠性高、容錯(cuò)性強(qiáng)等特點(diǎn)深受用戶(hù)的歡迎。并被廣泛地應(yīng)用于工業(yè)自動(dòng)化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面。例如在鐵路系統(tǒng)中,為了保證行車(chē)的安全,需要對(duì)鐵軌及周?chē)鸂顟B(tài)進(jìn)行實(shí)時(shí)檢測(cè),這些設(shè)備采用的方式是RS232、RS485、RJ45以太網(wǎng)接口、USB接口和CAN等,并通過(guò)專(zhuān)線連接到監(jiān)控中心的設(shè)備。這種方式浪費(fèi)資源,也不易于設(shè)備的統(tǒng)一管理。因此,需要一種安裝在鐵路沿線的設(shè)備發(fā)送的信息統(tǒng)一收集并通過(guò)一條專(zhuān)線直接送往監(jiān)控中心。特別是RS232等串口等方式連接的,無(wú)法集中、全面、準(zhǔn)確而實(shí)時(shí)地監(jiān)控?cái)?shù)據(jù)?;谶@種原因,設(shè)計(jì)出一種串口以太轉(zhuǎn)換器數(shù)據(jù)終端,終端有以太網(wǎng)口、USB接口、CAN總線接口,現(xiàn)只針對(duì)一種多種擴(kuò)展CAN總線接口的方法。
ARM7TDMI處理器是ARM7處理器系列成員之一,是目前應(yīng)用較廣的32位高性能嵌入式RISC處理器,SEP3203[1]是東南大學(xué)國(guó)家專(zhuān)用集成電路系統(tǒng)工程技術(shù)研究中心基于ARM7TDMI處理器內(nèi)核設(shè)計(jì)的16/32位RISC微處理器芯片。它面向低成本手持設(shè)備和其它通用嵌入式設(shè)備,為用戶(hù)提供了豐富的外設(shè)、低功耗管理和低成本的外存配置。
為了實(shí)現(xiàn)該轉(zhuǎn)換模塊的研究,首先要選擇一個(gè)硬件平臺(tái)即嵌入式處理器。由于ARM是基于精簡(jiǎn)指令系統(tǒng)(RISC)的32位內(nèi)核,代碼效率高,運(yùn)行速度快,綜合性能強(qiáng),在基于ARM體系結(jié)構(gòu)的嵌入式CPU中,基于ARM7TDMI體系結(jié)構(gòu)的SEP3203嵌入式微處理器擁有較好的技術(shù)支持,因此轉(zhuǎn)換器選擇SEP3203作為硬件平臺(tái);轉(zhuǎn)換系統(tǒng)必須要有電源,供整個(gè)系統(tǒng)用;系統(tǒng)工作時(shí)需要有工作時(shí)鐘,故系統(tǒng)需要有時(shí)鐘電路;由于用戶(hù)需要的轉(zhuǎn)換器要有串口、USB、以太網(wǎng)口、CAN總線接口等功能,由于只介紹CAN總線接口,其它可參看文獻(xiàn)[2,3]。與CAN總線接口相關(guān)電路結(jié)構(gòu)的部分如圖1所示。
圖1 轉(zhuǎn)換終端CAN接口部分相關(guān)電路結(jié)構(gòu)
CAN接口部分主要有SEP3203微處理器、控制器MCP2515、MCP2551總線收發(fā)器等部件組成,圖2是CAN接口原理圖。由于SEP3202微處理器沒(méi)有預(yù)留CAN接口,要實(shí)現(xiàn)CAN總線[4]的連接和數(shù)據(jù)傳輸,通過(guò)SPI同步串行接口和MCP2515控制器相連。MCP2510是Microchip公司為簡(jiǎn)化CAN總線的接口應(yīng)用而專(zhuān)門(mén)設(shè)計(jì)的一種獨(dú)立CAN控制器芯片,完全支持CAN V2.0B技術(shù)規(guī)范。該器件具有如下特征:能發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀以及遠(yuǎn)程幀;自帶的兩個(gè)驗(yàn)收屏蔽寄存器和六個(gè)驗(yàn)收濾波寄存器可以過(guò)濾掉不想要的報(bào)文,減少了主單片機(jī)的開(kāi)銷(xiāo)。通訊速率為1 Mb/s;與MCU的連接是通過(guò)業(yè)界標(biāo)準(zhǔn)串行外設(shè)接口(SPI)來(lái)實(shí)現(xiàn)的,速率可以達(dá)到10 MHz;帶有可編程預(yù)分頻器的時(shí)鐘輸出引腳,帶有可選使能設(shè)定的中斷輸出引腳。系統(tǒng)中擔(dān)負(fù)著報(bào)文的發(fā)送、接收、過(guò)濾等工作,是CAN總線接口控制板的核心器件。MCP2515外接16 MHz晶體作振蕩源,將CAN總線速度配置為125 kbps,MCP2515有3個(gè)引腳(TX0RTSA、TX1RTSA、TX2RTSA)可以配置成通用的輸進(jìn)腳。由于MCP2515的輸出信號(hào)驅(qū)動(dòng)能力不夠,而且與CAN總線物理接口的要求存在很大的差異,因此必須與CAN收發(fā)器MCP2551相連,由CAN收發(fā)器與CAN物理總線直接連接,實(shí)現(xiàn)通信。MCP2551是Microchip公司生產(chǎn)的可容錯(cuò)的高速CAN總線收發(fā)器芯片,支持1 Mbps的運(yùn)行速率,可連接高達(dá)112個(gè)節(jié)點(diǎn),適合12 V和24 V系統(tǒng),管腳特性與MCP2515完全兼容。它與系統(tǒng)物理總線相連,具有差分發(fā)射和接收能力,可將很多節(jié)點(diǎn)與同一網(wǎng)絡(luò)相連接。在通訊總線兩端各加一個(gè)120 Ω的電阻,對(duì)于匹配總線阻抗起相當(dāng)重要的作用,否則數(shù)據(jù)的抗干擾性和可靠性會(huì)大大降低,甚至無(wú)法通訊。在實(shí)際應(yīng)用中,為提高系統(tǒng)的抗干擾能力,還可以在控制器和收發(fā)器之間添加光耦電路,防止串入信號(hào)干擾,實(shí)現(xiàn)CAN各結(jié)點(diǎn)的電氣隔離。
目前比較流行的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)主要有嵌入式Linux、Win CE、Palm OS、Sybian、VxWorks、Nuclear、μC-OS/II等。其中嵌入式Linux、Win CE、Palm OS、Sybian稱(chēng)為軟實(shí)時(shí)嵌入式操作系統(tǒng),適用于對(duì)實(shí)時(shí)性要求一般的系統(tǒng)中,而VxWorks、Nuclear、μC-OS/II稱(chēng)為硬實(shí)時(shí)嵌入式操作系統(tǒng),適用于對(duì)實(shí)時(shí)性要求較高的系統(tǒng)。選擇μC-OS/II操作系統(tǒng)作為開(kāi)發(fā)的平臺(tái)的主要原因:它的內(nèi)核是完全免費(fèi)的,用戶(hù)不需要支付任何費(fèi)用,有利于降低系統(tǒng)開(kāi)發(fā)成本。它的源代碼是公開(kāi),源代碼的開(kāi)放可以使用戶(hù)對(duì)系統(tǒng)有一個(gè)全面徹底的了解,并可根據(jù)實(shí)際需要對(duì)源代碼進(jìn)行裁減或添加用戶(hù)自己的模塊,增強(qiáng)系統(tǒng)的性能。系統(tǒng)內(nèi)核實(shí)用性強(qiáng)、可靠性高。要使μC-OS/II在SEP3203微處理器上運(yùn)行,需要對(duì)其進(jìn)行移植,這就需要修改3個(gè)和ARM體系結(jié)構(gòu)相關(guān)的文件(OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C)。具體修改參照文獻(xiàn)[5]。
圖2 CAN接口電路
CAN軟件接口為應(yīng)用層提供訪問(wèn)CAN控制器MCP2515一個(gè)便捷的“通道”,該“通道”屏蔽了CAN控制器MCP2515工作的實(shí)現(xiàn)細(xì)節(jié),使得應(yīng)用層面向通信是透明的。CAN接口通過(guò)SPI通信來(lái)實(shí)現(xiàn)對(duì)CAN控制器操作。通信接口程序包括初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、錯(cuò)誤處理[6]。
(1)CAN控制初始化。初始化包括硬件使能、軟件復(fù)位、配置工作模式、設(shè)置CAN的波特率、設(shè)置ID過(guò)濾器、切換MCP2515到正常狀態(tài)等。初始化程序是完成CAN接口通信的關(guān)鍵,主要用來(lái)完成CAN控制器工作方式的選擇,SEP3203的SPI可以工作在4種模式,但是MCP2515的SPI接口只支持其中的2種模式,因此應(yīng)該將SEP3203的SPI接口配置為MCP2515支持的模式,程序配置為正常模式的中斷方式。
初始化采用函數(shù)是CAN_Init完成,首先設(shè)置為配置模式,函數(shù)是CAN_ChgMode,然后設(shè)置控制控制寄存器、中斷使能寄存器、設(shè)置置接收屏蔽標(biāo)識(shí)符、收濾波標(biāo)識(shí)符等。
(2)發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)首先將待發(fā)送的數(shù)據(jù)打包成符合CAN協(xié)議的幀格式,然后讀取相應(yīng)的發(fā)送狀態(tài),進(jìn)行相應(yīng)的發(fā)送配置(數(shù)據(jù)長(zhǎng)度、修改控制位等),寫(xiě)入發(fā)送緩沖區(qū),啟動(dòng)發(fā)射模式并自動(dòng)發(fā)送。在這過(guò)程中兩種情況被執(zhí)行,一是在發(fā)送中斷響應(yīng)中,如果當(dāng)前有任務(wù)發(fā)送,通過(guò)發(fā)送緩沖區(qū)記錄標(biāo)志來(lái)確定空的發(fā)送緩沖區(qū)并向其中寫(xiě)入發(fā)送幀,然后啟動(dòng)發(fā)射模式進(jìn)行發(fā)送;二是在接收中斷響應(yīng)中,在接收處理完后如果有發(fā)送任務(wù)且有發(fā)送緩沖區(qū)空,會(huì)處理發(fā)送任務(wù)。發(fā)送部分的主要代碼如下:
(3)接收數(shù)據(jù)。數(shù)據(jù)接收方式有查詢(xún)和中斷2種方式。程序采用中斷方式,在初始化程序中必須使能接收中斷。在中斷服務(wù)程序中,讀取ID值來(lái)確定當(dāng)前是那個(gè)接收緩沖區(qū)的數(shù)據(jù)是否準(zhǔn)備好,準(zhǔn)備好的就可以讀取,接收幀首先讀取ID值,確定是那個(gè)節(jié)點(diǎn)發(fā)射的,并據(jù)此把數(shù)據(jù)存放在相應(yīng)的位置。主要代碼如下:
(4)錯(cuò)誤處理。在總線發(fā)生故障的情況下,產(chǎn)生錯(cuò)誤中斷,需要訪問(wèn)相應(yīng)的錯(cuò)誤寄存器來(lái)確定的錯(cuò)誤的類(lèi)型,并據(jù)此作出相應(yīng)的處理。
采用RAM7TDMI芯片的SEP3203集成的SPI接口擴(kuò)展的CAN總線接口,在不改變CAN總線特點(diǎn)的前提下,PCB布線簡(jiǎn)單可靠,增強(qiáng)了系統(tǒng)的可靠性,實(shí)現(xiàn)了低成本的CAN構(gòu)建方案。方案用于串口以太網(wǎng)轉(zhuǎn)換器終端的擴(kuò)展。
[1]徐金波.基于SEP3203微處理器的信息終端的應(yīng)用研究[D].南京:東南大學(xué),2006
[2]蔡長(zhǎng)安,鐘銳.串行通信轉(zhuǎn)網(wǎng)絡(luò)通信數(shù)據(jù)模塊的電路設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(11):2322-2324
[3]蔡長(zhǎng)安,鐘銳,王盈瑛.串行通信轉(zhuǎn)網(wǎng)絡(luò)通信數(shù)據(jù)模塊的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(1):94-97
[4]劉光平.基于CAN總線的地鐵屏蔽門(mén)控制系統(tǒng)研究[J].重慶工商大學(xué):自然科學(xué)版,2012,29(12):66-71
[5]時(shí)龍興,凌明,王學(xué)香,等.嵌入式系統(tǒng)——基于SEP3203微處理器的應(yīng)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2006
[6]陶志東,周純杰,宋明權(quán),等.基于S3c2410的CAN總線接口的設(shè)計(jì)與開(kāi)發(fā)[J].可編程控制器與工廠自動(dòng)化,2006,(1):58-71
Design and Development of CAN Bus Communication Based on SEP3203
CAI Chang-an1,ZHONG Rui2,JIANG Jin-kai
(1.Yancheng Teachers College,Yancheng 224002,China; 2.Southeast University,Nanjing 210096,China)
This paper briefly analyzes SEP3203 micro-processor,MCP 2515 controller and MCP2551 bus transceiver,and introduces the method to use chip SEP3203 to extend CAN interface,using SPI interface to extend CAN bus interface and provides the design of software and hardware of CAN bus interface and its application.Testing results show that this scheme is feasible.
SEP3203;bus interface;embedded system
TP311.53
A
1672-058X(2015)02-0033-04
10.16055/j.issn.1672-058X.2015.0002.007
責(zé)任編輯:田 靜
2010-06-28;
2014-07-12.
鹽城市科技局項(xiàng)目(YKN2013012);鹽城師范學(xué)院科技項(xiàng)目(13YCKL006).
蔡長(zhǎng)安(1964-),男,江蘇鹽城人,高級(jí)實(shí)驗(yàn)師,碩士,從事計(jì)算機(jī)應(yīng)用研究.