<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式Windows CE5.0的無(wú)線(xiàn)監控系統研究

基于嵌入式Windows CE5.0的無(wú)線(xiàn)監控系統研究

作者: 時(shí)間:2009-04-24 來(lái)源:網(wǎng)絡(luò ) 收藏

2.2 GPRS模塊的接口設計
S3C2440有3個(gè)UART通道,利用其中一個(gè)通道設計串口,使其與GPRS模塊連接,由于S3C2440自帶的UART控制器,使得硬件開(kāi)發(fā)和軟件設計都比較簡(jiǎn)單。但RS 232標準所定義的高、低電平信號,與一般的微控制器系統的電路所定義的高、低電平信號完全不同,如S3C2440系統的標準邏輯“1”對應電平2~3 V,標準邏輯“O”對應0~4 V電平。顯然,與RS 232標準所述的電平信號完全不同。兩者之間要進(jìn)行通信,必須經(jīng)過(guò)信號電平的轉換,目前常使用的電平轉換芯片有MAX232,MAX3221和MAX324.3,具體設計電路如圖7和圖8所示。

本文引用地址:http://dyxdggzs.com/article/152523.htm

3 操作系統平臺的定制
CE是高度模塊化的操作系統,正因為如此,用戶(hù)為了滿(mǎn)足特定的要求而對操作系統進(jìn)行定制,如果為自己的設備定制 CE操作系統,則須進(jìn)行創(chuàng )建、構建、運行和發(fā)布OS等一系列操作。在視頻中,根據功能要求,利用Platform Builder5.0定制系統的流程如下:
(1)導入BSP開(kāi)發(fā)包。由于用的是三星公司的ARM920T核的S3C2440,所以在BSP包中找到SMDK2440文件下的SMDK2440.CEC文件將其導入。打開(kāi)“Platform Builder5.0”,選擇“File”菜單下的 “Manage Catalog Features”,如圖9所示。在彈出的對 話(huà)框中單擊“Import”,瀏覽到SMDK2440文件下的 smdk2440.cec文件,將其導入。

(2)創(chuàng )建項目。根據WinCE的要求,在定制系統的過(guò)程中選擇合適的組件來(lái)實(shí)現。其中包括的組件有:支持應用程序開(kāi)發(fā)的MFC組件和支持網(wǎng)絡(luò )的相關(guān)組件等。
(3)編譯項目:點(diǎn)擊菜單“Build OS”→“Sysgen”開(kāi)始編譯項目。
(4)下載運行時(shí)映像,調試成功后啟動(dòng)。編譯成功后會(huì )在目WinCES00PBWorkspacestestlRelDirsmdk2 440_ARMV4I_Release下生成nk.bin和nk.nb0等文件,將nk.nb0下載到硬件平臺上運行。

4 驅動(dòng)程序的開(kāi)發(fā)
4.1 攝像頭驅動(dòng)的開(kāi)發(fā)
攝像頭驅動(dòng)開(kāi)發(fā)是設計中的一個(gè)難點(diǎn),也是一個(gè)關(guān)鍵部分。由于攝像頭采集的視頻數據可以當作數據流來(lái)處理,所以對于攝像頭的驅動(dòng)將采用流式接口的方法來(lái)開(kāi)發(fā)。
(1)在Platform Builder中打開(kāi)前面定制的操作系統工程,然后在新建一個(gè)WIN32 DLL項目,添加2個(gè)C++的源文件,即:camera.cpp和IIc.cpp,其中camer―a.cpp包含驅動(dòng)的入口函數DLLMain();驅動(dòng)的前綴為“CIS”,IIc.cpp包含通過(guò)ICC接口對攝像頭相關(guān)寄存器進(jìn)行配置的函數。
(2)根據前面的硬件電路和OV9650芯片的工作時(shí)序,通過(guò)編寫(xiě)流接口的CIS_Init函數實(shí)現OV9650初始化。主要包括以下3步:調用InterruptInitialize(SYSINTR_CAM,CameraEvent,NULL,0)函數通知系統注冊中斷;調用CreateEvent()函數創(chuàng )建一個(gè)CameraEvent事件;調用CreateThread()函數創(chuàng )建CameraThread線(xiàn)程。在Camera Capture Thread服務(wù)函數中調用WaitForSingleObject(CameraEvent,Dis―play Time)函數等待Camera Event事件的發(fā)生。此事件由與其關(guān)聯(lián)的SYSINTR_CAM中斷來(lái)觸發(fā)。此外還有其它流接口函數(CIS_IOControl等)也可以以類(lèi)似的方法實(shí)現。
(3)編寫(xiě)DLL的導出函數定義文件.DEF。.DEF文件定義了DLL的導出函數類(lèi)表。.DEF文件可以就用一般的記事本編輯,保存時(shí)后綴名改為.DEF即可,關(guān)于本攝像頭驅動(dòng)的.DEF文件內容如下:


(4)為驅動(dòng)程序配置注冊表。在platform.reg中添加以下注冊項即可:


在攝像頭驅動(dòng)開(kāi)發(fā)完成后,通過(guò)編寫(xiě)應用程序在終端的觸摸屏上顯示出來(lái),如圖10所示。首先通過(guò)CreateWindow這個(gè)API函數創(chuàng )建一個(gè)用來(lái)顯示圖像的窗體,然后創(chuàng )建回調函數CaptureThreadProc的線(xiàn)程,在回調函數中根據不同的操作向操作系統發(fā)送不同的消息值,處理圖像的讀取、顯示等。測試結果如圖11所示。

4.2 串口驅動(dòng)開(kāi)發(fā)

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)



相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>