關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于AT91RM9200的CAN智能節(jié)點(diǎn)設(shè)計(jì)

基于AT91RM9200的CAN智能節(jié)點(diǎn)設(shè)計(jì)

作者: 時(shí)間:2010-08-13 來(lái)源:網(wǎng)絡(luò) 收藏

控制器MCP2510可以通過(guò)串行數(shù)據(jù)發(fā)送引腳(TX)和串行數(shù)據(jù)接收引腳(RX)直接連接到CANPCA82C250。該為了實(shí)現(xiàn)MC-P2510與PCA82C250之間的電流隔離,在它們之間放置了2個(gè)光耦。然而,在協(xié)議控制器和之間使用光耦,通常會(huì)增加總線的循環(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。
CANPCA82C250通過(guò)有差動(dòng)發(fā)送和接收功能的2個(gè)總線終端CANH和CANL連接到總線電纜。PCA82C250的輸入引腳Rs通過(guò)外接電阻Rext到地,可以選擇3種不同的工作模式。第1種是高速模式,支持最大的總線速度和/或長(zhǎng)度;第2種是斜率模式,其輸出轉(zhuǎn)換速度可故意降低以減少電磁輻射;第3種是準(zhǔn)備模式,其在電池供電并對(duì)功耗消耗非常低的應(yīng)用非常適合。該將PCA82C250的引腳RS外接阻值為47 kΩ的電阻,從而使它工作在斜率模式,這樣可以使用非屏蔽的總線電纜,降低系統(tǒng)的成本。但總線信號(hào)轉(zhuǎn)換速率被故意減低了,因此該只能應(yīng)用在傳輸速率小于等于125 Kb/s時(shí)的中低速應(yīng)用場(chǎng)合,相應(yīng)光耦選擇6N137即可。

2 軟件設(shè)計(jì)
CAN軟件設(shè)計(jì)主要包括2個(gè)方面:CAN通信和CAN功能模塊的軟件設(shè)計(jì)。CAN節(jié)點(diǎn)功能模塊軟件的實(shí)現(xiàn)因需求而異,在此不做介紹。本文著重介紹CAN通信軟件的設(shè)計(jì),它主要由3部分組成:CAN初始化、CAN發(fā)送數(shù)據(jù)、CAN接收數(shù)據(jù)。
2.1 CAN初始化
由圖2(a)可知,CAN初始化主要包括PIOA端口初始化、SPI初始化、MCP2510初始化、中斷初始化。

本文引用地址:http://www.butianyuan.cn/article/162936.htm


現(xiàn)分別介紹如下:
(1)PIOA端口初始化。由于每個(gè)引腳可配置為通用功能I/O線或與1個(gè)或2個(gè)外設(shè)I/O復(fù)用的I/O線。因此必須通過(guò)軟件配置PIOA端口:將PA0,PAl,PA2,PA4引腳分別定義為MISO,MOSI,SPCK,NPCSl,從而完成CAN節(jié)點(diǎn)SPI接口的定義;將PA3引腳定義為IRQ5,從而完成CAN節(jié)點(diǎn)中斷信號(hào)的定義。
(2)SPI初始化。通過(guò)PIOA端口初始化,只是完成SPI接口的引腳定義。為了使SPI接口能夠正常工作,首先配置電源管理控制器(PMC)以使能SPI時(shí)鐘;如果允許SPI中斷請(qǐng)求,必須對(duì)高級(jí)中斷控制器(AIC)進(jìn)行配置;最后通過(guò)SPI的模式寄存器SPI_MR。指定SPI為主機(jī)模式、固定外設(shè)選擇、SPI時(shí)鐘為MCK、片選信號(hào)NPCSl有效;通過(guò)SPI的片選1寄存器SPI_CSRl指定SPCK時(shí)鐘極性、時(shí)鐘相位以支持MCP2510的(O,O)或(1,1)的SPI模式,指定SPI接口以8位數(shù)據(jù)進(jìn)行傳輸匹配MCP2510的命令及數(shù)據(jù)格式,指定SPI的串行時(shí)鐘波特率以匹配與MCP2510的通信。
(3)MCP2510初始化。在完成PIOA端口、SPI初始化的基礎(chǔ)上,即可按照?qǐng)D2(a)虛線框中的流程進(jìn)行MCP2510初始化:首先必須使MCP2510進(jìn)入配置模式;然后對(duì)MCP2510相關(guān)寄存器(位定時(shí)配置寄存器、接收濾波寄存器、接收屏蔽寄存器、引腳控制和狀態(tài)寄存器)進(jìn)行配置;最后使MCP2510進(jìn)入正常模式。根據(jù)MCP2510提供的SPI命令集(讀指令、寫指令、請(qǐng)求發(fā)送指令、狀態(tài)讀指令、位修改指令、復(fù)位指令),可以通過(guò)對(duì)
的SPI接收數(shù)據(jù)寄存器SPI_RDR,SPI發(fā)送數(shù)據(jù)寄存器SPI_TDR,SPI狀態(tài)寄存器SPI_SR的操作實(shí)現(xiàn)相應(yīng)的函數(shù):McpRdByte(),Mcp-WrByte(),WriteRTS(),McpRdStatus(),BitModify(),McpReset()。軟件通過(guò)這些基本的指令函數(shù)完成MCP2510相關(guān)寄存器的配置。
(4)中斷初始化。通過(guò)的高級(jí)中斷控制器(AIC),首先配置IRQ5中斷的優(yōu)先級(jí)為最高,中斷觸發(fā)類型為下降沿觸發(fā);接著將中斷服務(wù)程序IRQ5_ISR()的地址設(shè)置到中斷向量寄存器;最后使能IRQ5中斷。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉