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