基于AT91RM9200的CAN智能節(jié)點(diǎn)設(shè)計(jì) 2011-04-26 09:26:58來源:互聯(lián)網(wǎng)
   近年來工業(yè)測(cè)控系統(tǒng)從傳統(tǒng)的集中測(cè)量控制系統(tǒng)轉(zhuǎn)向網(wǎng)絡(luò)化的集散控制系統(tǒng)。隨著現(xiàn)場(chǎng)總線技術(shù)高速發(fā)展和標(biāo)準(zhǔn)化程度的不斷提高,以現(xiàn)場(chǎng)總線技術(shù)為基礎(chǔ)的開放型集散測(cè)控系統(tǒng)得到廣泛應(yīng)用。總線是控制器局域網(wǎng)(controller area network,CAN)屬于現(xiàn)場(chǎng)總線范疇,是一種能有效支持分布式控制的串行通信網(wǎng)絡(luò),可將掛接在現(xiàn)場(chǎng)總線上作為網(wǎng)絡(luò)節(jié)點(diǎn)的智能設(shè)備連接成網(wǎng)絡(luò)系統(tǒng),并進(jìn)一步構(gòu)成集散測(cè)控系統(tǒng)。CAN智能節(jié)點(diǎn)位于傳感器和執(zhí)行機(jī)構(gòu)所在的現(xiàn)場(chǎng),在集散控制系統(tǒng)中起著承上啟下的作用。一方面,它必須和上位機(jī)進(jìn)行通信,以完成數(shù)據(jù)交換;另一方面,它根據(jù)系統(tǒng)的需要以完成測(cè)量與控制的功能。因此,CAN智能節(jié)點(diǎn)的設(shè)計(jì)在工業(yè)集散測(cè)控系統(tǒng)中有著十分重要的作用。本文將提出一種基于ARM9處理器AT91RM9200和CAN控制器MCP25lO構(gòu)建的CAN智能節(jié)點(diǎn)的設(shè)計(jì)方案,并介紹了該方案的軟硬件設(shè)計(jì)及調(diào)試方法。
1 硬件設(shè)計(jì)
CAN智能節(jié)點(diǎn)的設(shè)計(jì)涉及2個(gè)方面:需要實(shí)現(xiàn)的功能;如何實(shí)現(xiàn)CAN通信。因此本文基于AT91RM9200和MCP2510提出的CAN智能節(jié)點(diǎn)的設(shè)計(jì)框架如圖1所示。在此首先介紹主要芯片的特性,然后再說明智能節(jié)點(diǎn)的設(shè)計(jì)原理。

點(diǎn)擊看大圖

1.1 芯片特性
AT91RM9200是Atmel公司生產(chǎn)的一款A(yù)RM9處理器,它是完全圍繞ARM920T ARM Thumb處理器構(gòu)建的系統(tǒng)。它有豐富的系統(tǒng)與應(yīng)用外設(shè)及標(biāo)準(zhǔn)的接口,從而為低功耗、低成本、高性能的計(jì)算機(jī)寬范圍應(yīng)用提供一個(gè)單片解決方案。
MCP2510是由美國(guó)微芯科技有限公司(MicrochipTechnology Inc.)生產(chǎn)的一款帶SPI接口的CAN協(xié)議控制器,完全支持CAN總線V2.0A/B技術(shù)規(guī)范;能夠發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展報(bào)文,通信速率最高可達(dá)1 Mb/s,同時(shí)具備驗(yàn)收過濾以及報(bào)文管理功能;通過SPI接口與MCU進(jìn)行通信,最高數(shù)據(jù)傳輸速率高達(dá)5 Mb/s;包含3個(gè)發(fā)送緩沖器和2個(gè)接收緩沖器,還具有靈活的中斷管理能力。所有這些特點(diǎn)使得MCU對(duì)CAN總線的操作變得非常簡(jiǎn)單。PCA82C250是由Philips半導(dǎo)體公司生產(chǎn)的一款CAN收發(fā)器,是CAN協(xié)議控制器和物理傳輸線路之間的接口。它可以用高
達(dá)l Mb/s的位速率在2條有差動(dòng)電壓的總線電纜上傳輸數(shù)據(jù)。
1.2 設(shè)計(jì)原理
本文將CAN智能節(jié)點(diǎn)需要實(shí)現(xiàn)的功能統(tǒng)稱為功能模塊。由于AT91RM9200處理器具有豐富的系統(tǒng)與應(yīng)用外設(shè)及標(biāo)準(zhǔn)的接口,因此根據(jù)應(yīng)用的需要很容易就可實(shí)現(xiàn)功能模塊的擴(kuò)展。本文著重說明AT91RM9200處理器如何實(shí)現(xiàn)CAN總線的擴(kuò)展。
AT91RM9200處理器提供4個(gè)SPI接口。其中MOSI(主機(jī)輸出從機(jī)輸入)、MISO(主機(jī)輸入從機(jī)輸出)、SPCK(串行時(shí)鐘)3個(gè)引腳信號(hào)由4個(gè)SPI接口共用;而4個(gè)片選信號(hào)NPCSO,NPCSl,NPCS2,NPCS3則用于分別選通4個(gè)SPI接口。而CAN控制器MCP2510的SPI接口引腳定義:SI(數(shù)據(jù)輸入)、SO(數(shù)據(jù)輸出)、SCK(時(shí)鐘輸入)、CS(片選輸入)。該設(shè)計(jì)將AT91RM9200第二個(gè)SPI接口與MCP2510的SPI接口相連(MOSI←→SI,MIS0←→SO,SPCK←→SCK,NPCSl←→CS),從而建立了它們之間通信的橋梁。同時(shí)將MCP2510芯片的中斷輸出引腳INT與AT91RM9200芯片的中斷輸入引腳IRQ5相連,從而可將MCP2510芯片產(chǎn)生的中斷(包括發(fā)送、接收、報(bào)文錯(cuò)誤、總線活動(dòng)喚醒、錯(cuò)誤等中斷)事件通知AT91RM9200處理器,讓其作出相應(yīng)的處理。

CAN控制器MCP2510可以通過串行數(shù)據(jù)發(fā)送引腳(TXCAN)和串行數(shù)據(jù)接收引腳(RXCAN)直接連接到CAN收發(fā)器PCA82C250。該設(shè)計(jì)為了實(shí)現(xiàn)MC-P2510與PCA82C250之間的電流隔離,在它們之間放置了2個(gè)光耦。然而,在協(xié)議控制器和收發(fā)器之間使用光耦,通常會(huì)增加總線節(jié)點(diǎn)的循環(huán)延遲。光耦6N137的典型傳播延時(shí)為60 ns,比較適合傳輸速率小于等于125 Kb/s時(shí)的中低速應(yīng)用場(chǎng)合;而在傳輸速率在125 Kb/s~1 Mb/s的高速應(yīng)用場(chǎng)合中,應(yīng)考慮使用傳播延時(shí)小于40 ns的高速光耦,如HCPL-7101。
CAN收發(fā)器PCA82C250通過有差動(dòng)發(fā)送和接收功能的2個(gè)總線終端CANH和CANL連接到總線電纜。PCA82C250的輸入引腳Rs通過外接電阻Rext到地,可以選擇3種不同的工作模式。第1種是高速模式,支持最大的總線速度和/或長(zhǎng)度;第2種是斜率模式,其輸出轉(zhuǎn)換速度可故意降低以減少電磁輻射;第3種是準(zhǔn)備模式,其在電池供電并對(duì)功耗消耗非常低的應(yīng)用非常適合。該設(shè)計(jì)將PCA82C250的引腳RS外接阻值為47 kΩ的電阻,從而使它工作在斜率模式,這樣可以使用非屏蔽的總線電纜,降低系統(tǒng)的成本。但總線信號(hào)轉(zhuǎn)換速率被故意減低了,因此該設(shè)計(jì)只能應(yīng)用在傳輸速率小于等于125 Kb/s時(shí)的中低速應(yīng)用場(chǎng)合,相應(yīng)光耦選擇6N137即可。
2 軟件設(shè)計(jì)
CAN智能節(jié)點(diǎn)軟件設(shè)計(jì)主要包括2個(gè)方面:CAN通信和CAN節(jié)點(diǎn)功能模塊的軟件設(shè)計(jì)。CAN節(jié)點(diǎn)功能模塊軟件的實(shí)現(xiàn)因需求而異,在此不做介紹。本文著重介紹CAN通信軟件的設(shè)計(jì),它主要由3部分組成:CAN初始化、CAN發(fā)送數(shù)據(jù)、CAN接收數(shù)據(jù)。