Cortex-M3在智能家居中的應(yīng)用
?Cortex-M3?是一個(gè)32位的處理器內(nèi)核,具有速度快、功耗低、價(jià)格便宜等特點(diǎn),廣泛應(yīng)用于嵌入式系統(tǒng)中。在?智能家居?領(lǐng)域,Cortex-M3被用于設(shè)計(jì)智能家居監(jiān)控終端和控制子網(wǎng),以實(shí)現(xiàn)智能家居系統(tǒng)的遠(yuǎn)程監(jiān)控和控制功能。
Cortex-M3在智能家居中的應(yīng)用
?智能家居監(jiān)控終端設(shè)計(jì)?:基于Cortex-M3微處理器的智能家居監(jiān)控終端設(shè)計(jì),通過將智能家居系統(tǒng)中的信息與控制中心設(shè)備設(shè)計(jì)成web服務(wù)器,用戶可以通過遠(yuǎn)程計(jì)算機(jī)上的瀏覽器軟件對(duì)嵌入式Web服務(wù)器進(jìn)行訪問,從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。這種設(shè)計(jì)的關(guān)鍵在于設(shè)計(jì)能夠接入Internet的嵌入式控制終端?1。
?感知與控制子網(wǎng)設(shè)計(jì)?:在物聯(lián)網(wǎng)智能家居系統(tǒng)中,不再按功能劃分為各個(gè)獨(dú)立的子網(wǎng),而是按傳輸接口形式和信息流的走向融合為感知/控制子網(wǎng)。NXP Cortex-M3/M0系列ARM微處理器因其優(yōu)異性能和低廉價(jià)格,為這樣的設(shè)計(jì)提供了良好條件?2。
Cortex-M3的技術(shù)特點(diǎn)和優(yōu)勢(shì)
Cortex-M3采用哈佛結(jié)構(gòu),擁有獨(dú)立的指令總線和數(shù)據(jù)總線,這使得取指與數(shù)據(jù)訪問可以并行進(jìn)行,從而提升了性能。此外,Cortex-M3采用了Tail-Chaining中斷技術(shù),能夠減少中斷處理的時(shí)間,提高系統(tǒng)的響應(yīng)速度?3。這些特性使得Cortex-M3非常適合用于需要高速處理和低功耗的智能家居系統(tǒng)中。
在真正的物聯(lián)網(wǎng)智能家居系統(tǒng)中,不應(yīng)當(dāng)再按功能劃分為各個(gè)獨(dú)立的抄表網(wǎng)、環(huán)境網(wǎng)、電控網(wǎng)、安防網(wǎng)等,而只是按傳輸接口形式和信息流的走向,融合為感知/控制子網(wǎng)。對(duì)于具有多主競(jìng)爭(zhēng)總線接口的模塊(如CAN、ZigBee等),融合為感知/控制子網(wǎng);而對(duì)眾多僅具單主總線的RS485模塊,則按信息流的流向,融合成循環(huán)檢測(cè)的感知子網(wǎng)和點(diǎn)控的控制子網(wǎng)。NXP CortexM3/M0系列ARM微處理器的優(yōu)異性能,低廉的價(jià)格為這樣的設(shè)計(jì)開發(fā)提供了良好的條件。
1 系統(tǒng)體系結(jié)構(gòu)
物聯(lián)網(wǎng)智能家居系統(tǒng)如圖1所示,它實(shí)際上是一個(gè)分布式測(cè)控系統(tǒng)。
它的上層管理網(wǎng)是以太網(wǎng),用于在廣闊的互聯(lián)網(wǎng)范圍內(nèi)信息共享,其上連接有各種管理、存儲(chǔ)及遠(yuǎn)程控制設(shè)備。
它的下層,不再以功能(環(huán)境、抄表、安防、電控等)切割分塊,而是按信息流走向整合形成感知/控制網(wǎng)。感知網(wǎng)以多主或輪詢的方式向上傳送信息,而控制網(wǎng)則可采用一主多從方式向下傳送控制命令。
在感知/測(cè)控網(wǎng)中,按媒體連接型式則有RS485總線網(wǎng)、CAN總線網(wǎng)、ZigBee總線網(wǎng)、WiFi總線網(wǎng)等。

連接上、下層的是多個(gè)嵌入式通信服務(wù)器。通信服務(wù)器是智能家居中的核心模塊,它在整個(gè)智能家居系統(tǒng)中不僅起到了上下信息傳遞的作用,而且進(jìn)行數(shù)據(jù)融合、分類以及安全管理,是感知網(wǎng)的管理主機(jī)。
2 嵌入式通信服務(wù)器
嵌入式通信服務(wù)器是智能家居中的核心模塊,選用的是NXP公司CortexM3系列中的LPC1768處理器。LPC1768處理器是一個(gè)低功耗,具有強(qiáng)大功能的32位ARM芯片。
LPC1768單片機(jī)內(nèi)部包含有一個(gè)功能齊全的10/100 Mbps以太網(wǎng)RMII接口控制器,它可以通過RMII接口(通常簡(jiǎn)化為媒體獨(dú)立接口MII)外接一個(gè)物理接口收發(fā)器(PHY),再接上網(wǎng)絡(luò)變壓器和RJ45接口,就組成了一個(gè)完整的以太網(wǎng)通信接口,如圖2所示。

PHY芯片選用美國(guó)國(guó)家半導(dǎo)體公司的DP83848,這是10/100 Mbps單路物理層器件功能,用于為L(zhǎng)PC1768芯片提供物理層接口。
以太網(wǎng) MAC,通過RMII 接口與片外PHY 相連。如圖2所示,LPC1768的以太網(wǎng)模塊使用RMII(簡(jiǎn)化MII的媒體獨(dú)立接口)來連接外部PHY 芯片(DP83848)。其中有8根RMII的串行數(shù)據(jù)總線,還有2根MIIM(媒體獨(dú)立接口管理)接口管理控制線,從而實(shí)現(xiàn)與片外以太網(wǎng)PHY 之間的連接。DP83848的復(fù)位信號(hào)可以共用LPC1768的復(fù)位信號(hào)。
以太網(wǎng)RMII 的引腳信號(hào)如下:
① ENET_TX_EN為輸出發(fā)送數(shù)據(jù)使能;
② ENET_TXD[1:0]為輸出發(fā)送數(shù)據(jù),2 位;
③ ENET_RXD[1:0]為輸入接收數(shù)據(jù),2 位;
④ ENET_RX_ER為輸入接收錯(cuò)誤;
⑤ ENET_CRS為輸入載波偵聽/數(shù)據(jù)有效;
⑥ ENET_REF_CLK/ENET_RX_CLK為輸入?yún)⒖紩r(shí)鐘用于外部PHY的媒體獨(dú)立接口管理(MIIM)的信號(hào);
⑦ ENET_MDC為輸出MIIM 時(shí)鐘;
⑧ ENET_MDIO為輸入/輸出MI 數(shù)據(jù)輸入和輸出。
DB83848通過TD+、TD-、RD+、RD-經(jīng)隔離變壓器、RJ45口輸出,L、R驅(qū)動(dòng)LED,指示輸入、輸出狀態(tài)。
3 CAN接口及CAN感知網(wǎng)
在智能家居中采用CAN感知/控制子網(wǎng),這里面有CAN以太網(wǎng)關(guān)、CAN路由器、CAN感知/控制模塊。由于CAN以太網(wǎng)關(guān)和CAN路由器需要以太網(wǎng)控制器(MAC)和2個(gè)CAN控制器,所以CAN以太網(wǎng)關(guān)、CAN路由器均由CortexM3的LPC1768來承擔(dān),而CAN感知/控制模塊則由CortexM0的LPC11C12/24來承擔(dān)。
3.1 CAN以太網(wǎng)關(guān)、CAN路由器
如圖3所示,LPC1768內(nèi)部集成有CAN控制器,外接CAN收發(fā)器就構(gòu)成了嵌入式通信服務(wù)器的CAN通信接口,所以能很方便地構(gòu)成以太CAN網(wǎng)關(guān)。又由于LPC1768內(nèi)部集成有2個(gè)CAN控制器,因而它支持2個(gè)CAN子網(wǎng),能很方便地構(gòu)成CAN路由器。

LPC1768的CAN控制器支持控制局域網(wǎng)(CAN),提供了一個(gè)完整的CAN 協(xié)議(遵循CAN 規(guī)范V2.0B)實(shí)現(xiàn)方案,因而它能很方便地兼容/混用過去的SJA1000 CAN系統(tǒng)。
3.2 CAN總線感知/控制模塊
CAN感知/控制模塊均選用基于CortexM0的LPC11C14/24。LPC11C14內(nèi)部集成有一個(gè)CAN控制器,而LPC11C24是在LPC11C14的基礎(chǔ)上集成了一個(gè)CAN收發(fā)器TJF1051。采用LPC11C14/24比過去采用51單片機(jī)+TJF1050+SJA1000方式,不僅性能大大提高,而且占用PCB板面積大大減小,芯片材料成本減少了40%。
新舊系統(tǒng)混用最好都采用同樣的CAN收發(fā)器。由于原CAN系統(tǒng)中CAN收發(fā)器芯片采用的是TJF1050,而TJF1051是與TJF1050高度兼容,因而以LPC11C14/24構(gòu)成的CAN模塊和采用51單片機(jī)+TJF1050+SJA1000的CAN模塊高度兼容/混用。
4 RS485接口及RS485感知網(wǎng)
在原智能家居系統(tǒng)中有不少的感知網(wǎng)采用RS485總線,而且采用的是80C51系列的9位多機(jī)通信方式。在新系統(tǒng)中選用CortexM0/M3后,也完全可兼容/混用原系統(tǒng)。LPC11C14的CAN接口如圖4所示。

4.1 LPC812M101FDH20的感知/控制網(wǎng)從機(jī)模塊
LPC812M101FDH20是NXP CortexM0系列中的20引腳廉價(jià)芯片,它有16K閃存、4K SRAM和3個(gè)串口。如圖5所示,LPC812M101FDH20通過開關(guān)矩陣分配引腳充當(dāng)U0/U2/U3_TXD、U1/U2/U3_RXD、U1/U2/U3_RTS,連接MAX485即構(gòu)成了RS485通信接口。在軟件中,通過CFG配置寄存器的第3、2位設(shè)置成10(9位通信模式),這就成了兼容于MCS51的多機(jī)通信方式(即可進(jìn)行軟件地址檢測(cè)和收發(fā)器方向控制的RS485通信)。

由于LPC800系列微處理器串口的9位通信方式中的第9位僅能進(jìn)行奇偶校驗(yàn)設(shè)置,不能人為設(shè)置1/0(地址/數(shù)據(jù)),所以它只能在RS485感知/控制網(wǎng)中充當(dāng)從機(jī)。
在充當(dāng)從機(jī)使用中,先要將USART CTRL寄存器第2位(ADDRDET使能地址檢測(cè)模式)設(shè)置為1,這時(shí)僅對(duì)主機(jī)發(fā)來的地址數(shù)據(jù),產(chǎn)生一個(gè)接收數(shù)據(jù)中斷。軟件隨后便檢查接收地址數(shù)據(jù),判斷是否是本機(jī)地址。如果是,則軟件會(huì)清零ADDRDET位,所有后續(xù)輸入數(shù)據(jù)均會(huì)被正常接收處理。在一次輪詢應(yīng)答響應(yīng)完后,再將USART CTRL寄存器第2位(ADDRDET使能地址檢測(cè)模式)設(shè)置為1,等待下次輪詢本機(jī)。
LPC800的串口由于在設(shè)置波特率時(shí),還可使用小數(shù)分頻器,使其在各種晶振下均能獲得精準(zhǔn)波特率;同時(shí),它采用3次采樣接收,接收數(shù)據(jù)是3個(gè)樣本“投票”中的2個(gè),當(dāng)有 1個(gè)樣本與其他不同時(shí),會(huì)將USART狀態(tài)寄存器第“15”位設(shè)置狀態(tài)標(biāo)志(接收噪聲中斷標(biāo)志),從而大大降低了誤碼率。