采用SX52單片機模擬家庭網(wǎng)關(guān)的設(shè)計
主CPU的信號引腳都已經(jīng)連接到用戶試驗區(qū)的周圍,有5組共40條信號線。開發(fā)使用人員可以在試驗區(qū)利用這些信號進行相應(yīng)的外圍電路擴展試驗。
4 擬系統(tǒng)的設(shè)計與實現(xiàn)
4.1 硬件設(shè)計與實現(xiàn)
本文選擇SX52作為模擬實現(xiàn)信息家電和家庭網(wǎng)關(guān)交互的平臺是非常合適的,因為我們利用其用戶試驗區(qū)模塊擴展外圍模塊電路(如電冰箱遙控模塊)模擬信息家電,以主模塊模擬家庭網(wǎng)關(guān),以實現(xiàn)通過遠(yuǎn)程終端(Web瀏覽器或者專用控制客戶端)對信息家電的控制,本文只討論利用專用控制客戶端,通過串口通訊方式實現(xiàn)對家電的遠(yuǎn)程控制。
在板上添加了紅外遙控發(fā)射電路(主芯片CS5104)模擬電冰箱,能夠?qū)崿F(xiàn)對電冰箱的遙控功能,同時為了了解開發(fā)系統(tǒng)遙控效果,還添加了遙控接收電路(主芯片CS8206),可以響應(yīng)發(fā)射電路的遙控信號。還添加了遙控接收端狀態(tài)LED(9只)用于顯示電冰箱狀態(tài)。硬件構(gòu)成框圖如圖2所示,本文只給出包含電冰箱模塊的框圖,添加其它模塊類似?!?p style="text-align: center">
圖2 系統(tǒng)硬件構(gòu)成框圖
4.2 軟件設(shè)計與實現(xiàn)
通過專用控制客戶端控制信息家電,首先要定義控制協(xié)議,讓從客戶端發(fā)送過去的信息被家庭網(wǎng)關(guān)解包提取有效信息后能進行協(xié)議轉(zhuǎn)換,把控制信息轉(zhuǎn)化為控制命令發(fā)送給信息家電,以執(zhí)行正確的操作,系統(tǒng)工作流程如下:
(1)開發(fā)系統(tǒng)板上電后初始化主芯片及各外圍芯片。
(2)打開客戶端程序如圖3所示。
(3)根據(jù)需要配置控制電冰箱的各選項,點擊“確定”后即啟動開發(fā)板上的電冰箱模塊,然后客戶端程序發(fā)出的服務(wù)請求(包含連接家庭網(wǎng)關(guān)的認(rèn)證請求),經(jīng)過開發(fā)板上的RTL8019AS,再經(jīng)SX52解釋驗證,如果驗證成功,在SX52控制下把已經(jīng)轉(zhuǎn)換的請求信息發(fā)送給電冰箱遙控發(fā)射芯片,該芯片發(fā)送遙控信號遙控接收電路,通過相應(yīng)的LED顯示,從而響應(yīng)遠(yuǎn)程控制請求。最后通過觀看控制界面上的顯示狀態(tài)與開發(fā)板上相應(yīng)LED顯示是否相符(界面上表示溫度的滑竿只設(shè)計了三個固定溫度,在開發(fā)板上用三個LED分別顯示),從而檢驗?zāi)M系統(tǒng)運行成功與否.
圖3 專用控制客戶端界面
由于考慮到單片機的處理能力,定義單個字符傳遞控制信息不僅可以節(jié)省資源,而且可以縮短響應(yīng)時間,滿足更高的實時性要求。以對電冰箱模塊的模擬為例,由客戶端程序發(fā)送給網(wǎng)關(guān)的信息,由網(wǎng)關(guān)提取后轉(zhuǎn)發(fā)給電冰箱模塊,其中的控制協(xié)議具體實現(xiàn)如下:用e代表關(guān)閉,t代表設(shè)置溫度(考慮到單片機的處理能力有限,只利用 “高中低”代表溫度設(shè)定值),s代表啟動/凍速(快速、標(biāo)準(zhǔn)、慢速,啟動后默認(rèn)為標(biāo)準(zhǔn)),m代表工作模式(省電模式和正常模式)。選擇好各選項按 “確定”后,就將控制信息以數(shù)據(jù)報的形式發(fā)送給家庭網(wǎng)關(guān)(SX52),家庭網(wǎng)關(guān)再進行解拆包,把來自客戶端的有效控制信息提取出來,再轉(zhuǎn)換成為模擬信息家電的電冰箱模塊所能識別的形式,最后通過I2C總線發(fā)給電冰箱模塊。后面相應(yīng)的燈就按已經(jīng)定義好的規(guī)律變亮或是變暗,表示溫度的滑竿的狀態(tài)也相應(yīng)變化。
根據(jù)上面制定的協(xié)議,制作客戶端和在相應(yīng)的文件中進行代碼添加和修改,再按以下的步驟完成最后的工作:
(1)制作客戶端實現(xiàn)以上協(xié)議,并顯示電冰箱的控制狀態(tài)信息,頁面外觀如圖3所示。
(2)修改i2c_uartdemo.src源文件,將其中的串口連接方式改為以太網(wǎng)連接方式,并添加電冰箱初始化代碼、中斷代碼和協(xié)議轉(zhuǎn)化模塊。
(3)利用匯編/編程器軟件SXKey52.exe將文件i2c_uartdemo.src下載到開發(fā)系統(tǒng)板,然后利用PC上運行的客戶端程序(如圖3所示)對開發(fā)板上的電冰箱硬件電路進行控制。
5 結(jié)束語
本文從研究家庭網(wǎng)關(guān)和信息家電出發(fā),選擇高性能的8位SX52單片機集成系統(tǒng)并進行軟硬件裁剪,成功地利用外圍硬件電路和虛擬外圍及網(wǎng)絡(luò)協(xié)議軟件虛擬模塊,搭建了模擬家庭網(wǎng)關(guān)和信息家電的嵌入式實驗平臺,為進一步研究家庭網(wǎng)關(guān)和信息家電內(nèi)部結(jié)構(gòu)以及二者之間的功能分配打下了堅實的基礎(chǔ)。
參考文獻
[1] 秦勃,章軍,基于嵌入式系統(tǒng)的安全網(wǎng)關(guān)的設(shè)計,微計算機信息,2005年第21卷第8-2 期
評論