王 鵬
(江蘇國電南自海吉科技有限公司,江蘇 南京,210000)
物聯(lián)網(wǎng)(IoT)是利用局部網(wǎng)絡(luò)或者互聯(lián)網(wǎng)等通信技術(shù)把傳感器、控制器、設(shè)備、人和物等通過一定的方式聯(lián)結(jié)在一起,最終形成人與物、物與物相聯(lián)的遠(yuǎn)程管理控制、信息化與智能化的網(wǎng)絡(luò)[1].
本控制系統(tǒng)的硬件主要有以下幾個(gè)部分組成:以LPC2368 ARM7 處理器為核心的嵌入式監(jiān)測控制中心,以DM9161A 以太網(wǎng)PHY 芯片或GPRS 模塊為核心的網(wǎng)絡(luò)通信部分,以EPM240 芯片為核心的CPLD 繼電器控制模塊,以及各種執(zhí)行設(shè)備,參見文獻(xiàn)[2]給出的控制器結(jié)構(gòu)框架圖.
根據(jù)物聯(lián)網(wǎng)控制器的實(shí)際要求,結(jié)合LPC2368的片內(nèi)資源,設(shè)計(jì)LPC2368 外圍電路,如圖1 所示.
圖1 LPC2368 外圍電路
DM9161A 是一個(gè)10M/100M 以太網(wǎng)PHY 收發(fā)器,它支持MII 和RMII 接口,在這里使用的是RMII 接口.DM9161A 的RMII 接口包括發(fā)送數(shù)據(jù)腳TXD[0]、TXD[1],發(fā)送使能腳TXEN,接受數(shù)據(jù)腳RXD[0]、RXD[1],接受數(shù)據(jù)時(shí)鐘腳RXCLK,接受錯(cuò)誤數(shù)據(jù)RXEN,這些腳和MII 管理接口的管理數(shù)據(jù)時(shí)鐘腳MDC、管理數(shù)據(jù)I/O 腳MDIO 等與LPC2368 的對應(yīng)腳相連.此外,一些管腳的上拉或下拉電阻主要是用于配置DM9161A 的運(yùn)行狀態(tài).PWRDWN 腳下拉表示DM9161A 不會(huì)進(jìn)入掉電模式;MDINTR 腳的上拉表示中斷的輸出低電平有效;COL/RMII 的上拉表示DM9161A 工作在RMII接口模式;BGRES 和BGRESG 腳之間的6.8kΩ 的電阻是用于調(diào)整DM9161A 的網(wǎng)絡(luò)驅(qū)動(dòng)能力,XT1和XT2 為時(shí)鐘輸入腳,因?yàn)槭褂肦MII 接口,所以時(shí)鐘輸入是50MHz,選用50MHz 的有源晶振,通過XT2 輸入,XT1 懸空.
圖2 獨(dú)立控制的RS485 串行通信電路圖
圖3 開關(guān)量輸出
利用RS485 自動(dòng)換向原理設(shè)計(jì)3 路RS485 串行通信電路,參見文獻(xiàn)[3]給出的電路圖.
該電路充分的利用了B0505LS DC-DC 隔離電源芯片和6N137 光耦隔離芯片,B0505LS 可以產(chǎn)生一個(gè)單獨(dú)的電源,6N137 芯片是高速光耦隔離芯片,速度可達(dá)10Mbit/s,電路中包括2 個(gè)6N317 芯片和1 個(gè)B0505LS 芯片,利用B0505LS 芯片制造一個(gè)電源單獨(dú)給MAX485 以及用于LPC2368 傳輸數(shù)據(jù)隔離的光耦供電,另一個(gè)用于數(shù)據(jù)接收隔離的光耦用3.3V 電源供電.當(dāng)RS485_TXD1 信號為“1”時(shí),對應(yīng)的6N137 光耦芯片輸出VO 為“1”,因此加在MAX485 DI 上的信號為“1”,DCT2 三極管集電極和發(fā)射極導(dǎo)通,使得RE、DE 上的信號都為“0”,自動(dòng)禁能MAX485 發(fā)送器,使能MAX485 作為接受器準(zhǔn)備接受數(shù)據(jù);當(dāng)RS485_TXD1 信號為“0”時(shí),對應(yīng)的6N137 光耦芯片輸出VO 為“0”,因此加在MAX485 DI 上的信號為“0”,DCT2 三極管集電極和發(fā)射極斷開,使得RE、DE 上的信號都為“1”,自動(dòng)禁能MAX485 接收器,使能MAX485 作為發(fā)送器發(fā)送數(shù)據(jù).
這一種RS-485 自動(dòng)換向電路可能并不適合所有的RS485 應(yīng)用,因此利用光耦PC817 隔離芯片單獨(dú)控制1 路的RS485 通信,電路圖如圖2 所示.利用LPC2368 的P0.8 GPIO 口輸出對光耦PC817 的控制進(jìn)而控制RS485 是作為發(fā)送器還是接收器,當(dāng)P0.8 輸出“1”時(shí),使RE、DE 上的信號都為“1”,使能MAX485 作為發(fā)送器,當(dāng)P0.8 輸出“0”、RS485_TXD2 上的信號為“1”時(shí),使能MAX485 作為接受器.RS485_TXD2 與LPC2368 的P2.0 口相連,使能P2.0 口為TXD1 功能.
開關(guān)量輸出模塊主要是用于控制繼電器模塊開關(guān)的通斷,電路原理圖如圖3 所示.此處利用了2 片74HC04 反相器,因?yàn)槭鞘褂?013 NPN 型三極管的做開關(guān)來控制輸出,三極管的集電極作為輸出,也就是當(dāng)基極與發(fā)射極之間電勢差為高電平時(shí)開關(guān)輸出為低電平,也就是LPC2368 的GPIO 口輸出低電平時(shí),經(jīng)過反相器和三極管作用使最終輸出為低電平,而當(dāng)集電極與發(fā)射極之間的電勢差為低電平時(shí),由于集電極與發(fā)射極之間不導(dǎo)通,因此輸出口處于高阻態(tài)狀態(tài),這樣保證了開關(guān)量只能輸出低電平,確保了對繼電器進(jìn)行可靠的控制,加入74HC04 反相器的目的是提高輸出電路的驅(qū)動(dòng)能力,同時(shí)也能起到隔離保護(hù)作用.
開關(guān)量輸入模塊如圖4 所示.該部分利用PC817 光耦隔離輸入可用于檢測其他電路的工作狀態(tài).
繼電器控制模塊是整個(gè)控制器系統(tǒng)最重要的模塊之一,控制器通過控制這個(gè)模塊上繼電器的通斷對一些設(shè)備進(jìn)行控制,繼電器控制模塊中加入了一塊Altera 的MAX II 系列的EMP240 CPLD 芯片,可以用于其它功能的擴(kuò)展,在此,我們只需要利用CPLD 芯片編程實(shí)現(xiàn)簡單的邏輯門電路對繼電器進(jìn)行控制.
1.5.1 EMP240 CPLD 芯片外圍電路設(shè)計(jì)
采用SPSS 19.0軟件進(jìn)行統(tǒng)計(jì)分析。計(jì)數(shù)資料用%表示,計(jì)量資料采用表示。組間計(jì)數(shù)資料采用χ2檢驗(yàn);計(jì)量資料兩兩比較采用t檢驗(yàn),三組間比較采用方差分析。變量間的相關(guān)性分析采用Pearson線性相關(guān)分析。所有統(tǒng)計(jì)結(jié)果以P<0.05為差異有統(tǒng)計(jì)學(xué)意義。
EMP240 CPLD 芯片屬于Altera 的MAX○R II系列CPLD 芯片,MAX○R II 具有I/O 口數(shù)量多,速度快,以及與其他CPLD 架構(gòu)連接可靠性高等優(yōu)點(diǎn).Altera 的MAX○R II 系列芯片配備的有MultiVol內(nèi)核,用戶閃存(UFM)模塊,和強(qiáng)化的系統(tǒng)可編程(ISP)功能,旨在降低成本和功耗的同時(shí),提供更多可編程解決方案的應(yīng)用,如總線連接,I/O 擴(kuò)展,上電復(fù)位(POR)、順序控制和設(shè)備配置的控制.
EMP240 具有240 個(gè)宏單元,采用3.3V 電壓供電,用在這里主要是用于LPC2368 ARM 控制器的I/O 擴(kuò)展作用,相當(dāng)于譯碼器替LPC2368 完成外部引腳資源擴(kuò)展、輸入輸出時(shí)序管理,LPC2368通過EMP240 CPLD 芯片對繼電器通斷進(jìn)行控制.
1.5.2 輸入部分整形電路設(shè)計(jì)
為了提高對繼電器控制的準(zhǔn)確性和可靠性,利用CD40106BM 施密特觸發(fā)器對輸入的信號波形進(jìn)行整形,去除信號中的諧波部分,得到平穩(wěn)的直流控制信號.控制器輸出部分通過PC817 光耦隔離輸出給CD40106BM
1.5.3 繼電器電路
繼電器電路的控制輸入端連接的是EMP240 CPLD 芯片,通過EMP240 編程簡單邏輯電路輸出控制繼電器的通斷,.繼電器型號采用NT75-2C-DC12-S-0.41-S,其額定電壓為12V,吸合電壓為8.4V,釋放電壓為1.2V,觸電負(fù)載為5A250VDC.
圖5 控制器軟件模塊示意圖
圖6 系統(tǒng)軟件主程序部分
由于LPC2368 ARM 芯片的片內(nèi)資源豐富,內(nèi)部有實(shí)時(shí)時(shí)鐘(RTC)和以太網(wǎng)控制器,因此時(shí)鐘模塊的直接利用LPC2368 內(nèi)部的RTC 去實(shí)現(xiàn),主要是配置RTC 的相關(guān)寄存器利用RTC 中斷實(shí)現(xiàn),在此不做說明,DM9161A 以太網(wǎng)芯片的驅(qū)動(dòng)利用LPC2368 以太網(wǎng)控制器控制,GPRS 模塊直接與控制器RS485 串口相連實(shí)現(xiàn)數(shù)據(jù)交換,LCD12864 模塊通過GPIO 口驅(qū)動(dòng),ATT7022CU 模塊通過GPIO口模擬SPI 時(shí)序驅(qū)動(dòng).
LPC2368 屬于ARM7 系列芯片,因此可以通過移植μC/OS-II 實(shí)時(shí)操作系統(tǒng)的方法提高LPC2368 的利用率和實(shí)時(shí)控制,利用μC/OS-II 的微小內(nèi)核實(shí)現(xiàn)任務(wù)之間的切換,由于只移植μC/OS-II 的內(nèi)核,涉及到外圍電路的驅(qū)動(dòng)程序就需要自己編寫,這樣難度較大,因此本設(shè)計(jì)中軟件部分未能采用移植μC/OS-II 實(shí)時(shí)操作系統(tǒng)的方法實(shí)現(xiàn),在以后對μC/OS-II 實(shí)時(shí)操作系統(tǒng)有了深入了解之后可以采用此方法進(jìn)行軟件設(shè)計(jì),可以提高CPU 的執(zhí)行效率.在此我們采用直接編程的方法來實(shí)現(xiàn)各個(gè)模塊的控制,控制器軟件模塊示意圖如圖8 所示.
控制器在上電復(fù)位后,根據(jù)需要調(diào)用相關(guān)函數(shù)完成系統(tǒng)的啟動(dòng)、初始化并進(jìn)入中斷模式開始正常工作,產(chǎn)生中斷后將系統(tǒng)控制權(quán)轉(zhuǎn)交給產(chǎn)生中斷對應(yīng)的中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行完后返回,釋放系統(tǒng)控制權(quán),繼續(xù)等待中斷.控制器主程序設(shè)計(jì)流程圖如圖6 所示.
采用LPC2368 ARM7 作為主控制器大大的提高了物聯(lián)網(wǎng)控制器的性能,LPC2368 片內(nèi)有以太網(wǎng)MAC 控制器,通過MAC 控制器控制外部PHY 芯片可以實(shí)現(xiàn)高速的網(wǎng)絡(luò)數(shù)據(jù)傳輸,LPC2368 還可以通過串口連接GPRS 模塊進(jìn)行數(shù)據(jù)傳輸,控制器電路經(jīng)過適當(dāng)?shù)男薷目梢詰?yīng)用于城市路等智能控制、遠(yuǎn)程智能家居的控制、遠(yuǎn)程農(nóng)業(yè)監(jiān)控;目前的不足之處主要在于控制器軟件編程部分,如果能夠成功移植μC/OS-II 實(shí)時(shí)操作系統(tǒng),對于CPU 的利用資源分配以及系統(tǒng)實(shí)時(shí)性有一個(gè)質(zhì)的改變,不過由于硬件平臺的不同,只能移植μC/OS-II 實(shí)時(shí)操作系統(tǒng)的微小內(nèi)核,對于外圍的硬件驅(qū)動(dòng)部分只能自己編寫,因此開發(fā)難度較大,需要后續(xù)對ARM7以及μC/OS-II 嵌入式系統(tǒng)有深入學(xué)習(xí)之后再做開發(fā).
[1] DU Kun-kun,WANG Zhi-liang,HONG Mi.Human machine interactive system on smart home of IoT[J].The Journal of China Universities of Posts and Telecommunications,2013,20(1):96-99.
[2] Zhang Guiqing,Duan Xingchao,Wang Mingand Li Chengdong.Controller Design for the Internet of Things for Building Electrical Equipments[J].Power Engineering and Automation Conference(PEAM),2012 IEEE.
[3] 潘群,向軍,王琳.RS-485 串行通信接口電路的設(shè)計(jì)與應(yīng)用[J].常州工學(xué)院學(xué)報(bào),2009,22(3):38-42.