基于VG2的智能家居控制器的實現
3 軟件設計
本文采用μC/OS-II(v2.51)嵌入式操作系統作為家居控制器的軟件平臺。μC/OS-II是一個占先式多任務操作系統,可固化、可裁剪,易于移植,具有良好的可靠性和穩定性;支持多達64個任務,以及信號量、消息郵箱、消息隊列等多種進程問通信機制。由于沒有TCP/IP和USB協議棧,因此移植了1wIP和USB HOST協議來實現網絡通信和USR數據傳輸。
3.1 μC/OS-II在VG2上的移植
采用Cygwin作為編譯平臺的EISC STUDIO集成開發環境,用戶可以在C程序中插入匯編語言(可擴展指令集),在移植過程中修改了OS_CPU.H和OS_CPU_C.C,4個與處理器相關的函數在OS_CPU_C.C中實現。堆棧的增長方向為向下,入口寬度為32位。初始化后數據結構依次為opt,ptos,pdata,0x0,task,0x3000,0xe,0x7,0x6,Ox5,0x4,0x3,0x2,0xl,0x0。OSStartHighRdy()在OS_CPU_C.C中的實現實例如下(限于篇幅,其他函數不再一一列出):

3.2 1wIP協議在μC/OS-II上的移植
1wIP是一個比較完備的嵌入式TCP/IP協議棧,有與操作系統接口的封裝層。1wIP的移植主要包括4個方面的工作:
◇處理與編譯器和硬件相關的include文件;
◇實現與操作系統相關的結構和函數;
◇實現lib_arch中的庫函數;
◇實現RTL8019As驅動程序。
RTL8019AS與Ne2k芯片兼容,可參照ethernetif.c網絡驅動模板實現網絡設備的驅動。
3.3 USB主機系統的實現
USB主機系統的實現主要是核心驅動程序(USBD)和主控制器驅動程序(HCD)的實現。HCD是協議棧最底層對主機控制器硬件和數據傳輸的抽象,向上為USBD提供一個軟件接口(HCDI),向下管理和檢測主機控制器硬件的行為。USBD是USB體系的中樞,用于檢測和管理USB系統的所有活動,向上接收USB設備驅動程序和用戶程序的各種命令和數據,向下把處理好的各種數據發送給HCD,并最終與設備進行通信。主機要支持設備類,就要建立特定的設備類協議,本設計實現了USB Mass Storage類,移植了ZLG/FS文件系統。
軟件設計采用模塊化、與內核相分離的原則,可保證程序具有良好的可移植性和可重用性,主要有網絡模塊、USB模塊、市話控制模塊、顯











評論