基于VG2的智能家居控制器的實(shí)現(xiàn)
3 軟件設(shè)計(jì)
本文采用μC/OS-II(v2.51)嵌入式操作系統(tǒng)作為家居控制器的軟件平臺。μC/OS-II是一個(gè)占先式多任務(wù)操作系統(tǒng),可固化、可裁剪,易于移植,具有良好的可靠性和穩(wěn)定性;支持多達(dá)64個(gè)任務(wù),以及信號量、消息郵箱、消息隊(duì)列等多種進(jìn)程問通信機(jī)制。由于沒有TCP/IP和USB協(xié)議棧,因此移植了1wIP和USB HOST協(xié)議來實(shí)現(xiàn)網(wǎng)絡(luò)通信和USR數(shù)據(jù)傳輸。
3.1 μC/OS-II在VG2上的移植
采用Cygwin作為編譯平臺的EISC STUDIO集成開發(fā)環(huán)境,用戶可以在C程序中插入?yún)R編語言(可擴(kuò)展指令集),在移植過程中修改了OS_CPU.H和OS_CPU_C.C,4個(gè)與處理器相關(guān)的函數(shù)在OS_CPU_C.C中實(shí)現(xiàn)。堆棧的增長方向?yàn)橄蛳?,入口寬度?2位。初始化后數(shù)據(jù)結(jié)構(gòu)依次為opt,ptos,pdata,0x0,task,0x3000,0xe,0x7,0x6,Ox5,0x4,0x3,0x2,0xl,0x0。OSStartHighRdy()在OS_CPU_C.C中的實(shí)現(xiàn)實(shí)例如下(限于篇幅,其他函數(shù)不再一一列出):
3.2 1wIP協(xié)議在μC/OS-II上的移植
1wIP是一個(gè)比較完備的嵌入式TCP/IP協(xié)議棧,有與操作系統(tǒng)接口的封裝層。1wIP的移植主要包括4個(gè)方面的工作:
◇處理與編譯器和硬件相關(guān)的include文件;
◇實(shí)現(xiàn)與操作系統(tǒng)相關(guān)的結(jié)構(gòu)和函數(shù);
◇實(shí)現(xiàn)lib_arch中的庫函數(shù);
◇實(shí)現(xiàn)RTL8019As驅(qū)動(dòng)程序。
RTL8019AS與Ne2k芯片兼容,可參照ethernetif.c網(wǎng)絡(luò)驅(qū)動(dòng)模板實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)。
3.3 USB主機(jī)系統(tǒng)的實(shí)現(xiàn)
USB主機(jī)系統(tǒng)的實(shí)現(xiàn)主要是核心驅(qū)動(dòng)程序(USBD)和主控制器驅(qū)動(dòng)程序(HCD)的實(shí)現(xiàn)。HCD是協(xié)議棧最底層對主機(jī)控制器硬件和數(shù)據(jù)傳輸?shù)某橄?,向上為USBD提供一個(gè)軟件接口(HCDI),向下管理和檢測主機(jī)控制器硬件的行為。USBD是USB體系的中樞,用于檢測和管理USB系統(tǒng)的所有活動(dòng),向上接收USB設(shè)備驅(qū)動(dòng)程序和用戶程序的各種命令和數(shù)據(jù),向下把處理好的各種數(shù)據(jù)發(fā)送給HCD,并最終與設(shè)備進(jìn)行通信。主機(jī)要支持設(shè)備類,就要建立特定的設(shè)備類協(xié)議,本設(shè)計(jì)實(shí)現(xiàn)了USB Mass Storage類,移植了ZLG/FS文件系統(tǒng)。
軟件設(shè)計(jì)采用模塊化、與內(nèi)核相分離的原則,可保證程序具有良好的可移植性和可重用性,主要有網(wǎng)絡(luò)模塊、USB模塊、市話控制模塊、顯
評論