www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于AT91RM9200的CAN智能節(jié)點(diǎn)設(shè)計(jì)

近年來(lái)工業(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ǔ)的開(kāi)放型集散測(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所示。在此首先介紹主要芯片的特性,然后再說(shuō)明智能節(jié)點(diǎn)的設(shè)計(jì)原理。


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)收過(guò)濾以及報(bào)文管理功能;通過(guò)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ò)展。本文著重說(shuō)明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)的處理。[!--empirenews.page--]
    CAN控制器MCP2510可以通過(guò)串行數(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通過(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)用非常適合。該設(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ù)。
2.1 CAN初始化
    由圖2(a)可知,CAN初始化主要包括PIOA端口初始化、SPI初始化、MCP2510初始化、中斷初始化。


    現(xiàn)分別介紹如下:
    (1)PIOA端口初始化。由于AT91RM9200每個(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ì)
AT91RM9200的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ò)AT91RM9200的高級(jí)中斷控制器(AIC),首先配置IRQ5中斷的優(yōu)先級(jí)為最高,中斷觸發(fā)類型為下降沿觸發(fā);接著將中斷服務(wù)程序IRQ5_ISR()的地址設(shè)置到中斷向量寄存器;最后使能IRQ5中斷。[!--empirenews.page--]
2.2 CAN發(fā)送數(shù)據(jù)
    當(dāng)完成CAN的初始化后,即可使用3個(gè)發(fā)送緩沖器發(fā)送報(bào)文數(shù)據(jù)。由圖2(b)可知:在發(fā)送數(shù)據(jù)前,首先通過(guò)發(fā)送緩沖器N(N=O,1,2)控制寄存器TXBNCTRL終止報(bào)文發(fā)送,并設(shè)定發(fā)送緩沖器N報(bào)文發(fā)送的優(yōu)先級(jí);接著通過(guò)發(fā)送緩沖器N標(biāo)準(zhǔn)標(biāo)識(shí)符高低位寄存器TXBNSIDH,TXBNSIDL設(shè)定標(biāo)準(zhǔn)標(biāo)識(shí)符,如果報(bào)文采用擴(kuò)展標(biāo)識(shí)符,還需通過(guò)發(fā)送緩沖器N擴(kuò)展標(biāo)識(shí)符高低位寄存器TXBNEID8,TXBNEID0設(shè)定擴(kuò)展標(biāo)識(shí)符。當(dāng)發(fā)送緩沖器N相關(guān)寄存器初始化后,發(fā)送任務(wù)處于休眠等待狀態(tài)。一旦有數(shù)據(jù)需要發(fā)送,即可將需要發(fā)送的數(shù)據(jù)(每次最多8 B)存放在發(fā)送緩沖器N的數(shù)據(jù)寄存器TXBND7~TXlBND0,并且通過(guò)送緩沖器N的數(shù)據(jù)長(zhǎng)度寄存器TXBNDLC設(shè)定每次發(fā)送的字節(jié)數(shù),最后通過(guò)發(fā)送緩沖器N控制寄存器TXB-NCTRL啟動(dòng)數(shù)據(jù)發(fā)送。當(dāng)數(shù)據(jù)發(fā)送完畢,發(fā)送任務(wù)又處于休眠等待狀態(tài)。
2.3 CAN接收數(shù)據(jù)
    當(dāng)完成CAN的初始化后,即可使用兩個(gè)接收緩沖器接收?qǐng)?bào)文數(shù)據(jù)。由圖2(c)可知:在接收數(shù)據(jù)前,首先通過(guò)接收緩沖器N(N=0,1)控制寄存器RXBNCTRL,設(shè)定接收緩沖器的工作模式為接收符合濾波條件的所有帶擴(kuò)展標(biāo)識(shí)符或標(biāo)準(zhǔn)標(biāo)識(shí)符的有效報(bào)文;如果允許MCP2510接收中斷,還需通過(guò)中斷使能寄存器CANINTE允許接收緩沖器N裝入報(bào)文時(shí)產(chǎn)生中斷。
    當(dāng)接收緩沖器N相關(guān)寄存器初始化后,接收任務(wù)處于休眠等待狀態(tài)。當(dāng)接收任務(wù)通過(guò)輪詢或中斷方法發(fā)現(xiàn)需要接收數(shù)據(jù)時(shí),它通過(guò)接收緩沖器N標(biāo)準(zhǔn)標(biāo)識(shí)符高低位寄存器RXBNSIDH,RXBNSIDL獲取標(biāo)準(zhǔn)標(biāo)識(shí)符;如果收到的報(bào)文是擴(kuò)展幀,可通過(guò)RXBNSIDL及接收緩沖器N擴(kuò)展標(biāo)識(shí)符中間、低位寄存器RXBNEID8,RXBNEIDO獲取擴(kuò)展標(biāo)識(shí)符;通過(guò)接收緩沖器N數(shù)據(jù)長(zhǎng)度碼寄存器RXBNDLC獲取接收到的數(shù)據(jù)字節(jié)個(gè)數(shù),進(jìn)而通過(guò)接收緩沖器N數(shù)據(jù)寄存器RBNDm7~RBNDm0獲取接收?qǐng)?bào)文中的數(shù)據(jù)信息。當(dāng)數(shù)據(jù)接收完畢,接收任務(wù)又處于休眠等待狀態(tài)。

3 軟硬件調(diào)試
    當(dāng)CAN智能節(jié)點(diǎn)的硬件和軟件設(shè)計(jì)完畢,需要對(duì)其進(jìn)行軟、硬件的調(diào)試以驗(yàn)證其設(shè)計(jì)的正確性。CAN智能節(jié)點(diǎn)軟、硬件調(diào)試按以下步驟依次進(jìn)行:
    (1)CAN自發(fā)、自收功能調(diào)試。只要在CAN初始化過(guò)程完成MCP2510相關(guān)寄存器的配置,將MCP2510設(shè)置為環(huán)回模式,即可使MCP2510器件內(nèi)部發(fā)送緩沖器和接收緩沖器之間進(jìn)行報(bào)文自發(fā)、自收,而無(wú)需通過(guò)CAN總線。


    (2)CAN通信功能調(diào)試。按照?qǐng)D3所示方案進(jìn)行CAN通信功能的調(diào)試。其中USB_CAN適配器采用武漢吉陽(yáng)光電科技有限公司一款帶有USB接口和1路CAN接口的GY8507 USB_CAN總線適配器。通過(guò)該適配器,PC可以通過(guò)USB接口連接一個(gè)標(biāo)準(zhǔn)CAN網(wǎng)絡(luò),從而與CAN智能節(jié)點(diǎn)通信。使用廠家提供的CANTools工具軟件可以方便進(jìn)行CAN智能節(jié)點(diǎn)數(shù)據(jù)的發(fā)送和接收調(diào)試。
    (3)CAN功能模塊調(diào)試。由于CAN智能節(jié)點(diǎn)具體實(shí)現(xiàn)的功能各異,不詳細(xì)介紹CAN功能模塊的調(diào)試。

4 結(jié)語(yǔ)
    目前已完成CAN智能節(jié)點(diǎn)通信電路的軟、硬件設(shè)計(jì)及調(diào)試,并成功將軟件移植到VxWorks 5.5操作系統(tǒng)上運(yùn)行?;诠δ軓?qiáng)大的AT91RM-9200處理器以及高可靠和強(qiáng)實(shí)時(shí)的VxWorks 5.5操作系統(tǒng),容易構(gòu)建出滿足應(yīng)用需求的CAN智能節(jié)點(diǎn)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉