<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 探討VxWorks實(shí)現(xiàn)自動發(fā)送彩信嵌入式設(shè)計(jì)

          探討VxWorks實(shí)現(xiàn)自動發(fā)送彩信嵌入式設(shè)計(jì)

          作者: 時間:2012-11-05 來源:網(wǎng)絡(luò) 收藏

            (2)系統(tǒng)串口連接電路的部分電路如圖3所示。ARM7處理器提供標(biāo)準(zhǔn)的UART接口連接手機(jī)模塊,另外提供一個串行接口,與圖像壓縮處理器模塊串行接口相連。

          系統(tǒng)軟件設(shè)計(jì)

          ● 操作系統(tǒng)和開發(fā)環(huán)境

            是目前世界上用戶數(shù)量最大的實(shí)時操作系統(tǒng),具有豐富的應(yīng)用軟件支持、良好的技術(shù)服務(wù)、可伸縮性(提供了超過1800個應(yīng)用編程接口供用戶自行選擇使用)、可裁減性(指用戶可以根據(jù)自己的應(yīng)用需求對進(jìn)行配置,產(chǎn)生具有各種不同功能的操作系統(tǒng)映像)和可靠的系統(tǒng)穩(wěn)定性。本系統(tǒng)主要采用其實(shí)時性、多任務(wù)、基于優(yōu)先級的搶占式調(diào)度、同優(yōu)先級輪轉(zhuǎn)調(diào)度和任務(wù)間的通信與同步機(jī)制、任務(wù)與中斷之間的通信機(jī)制。

            VxWorks的開發(fā)環(huán)境是WindRiver(風(fēng)河)公司提供的Tornado。Tornado采用主機(jī)-目標(biāo)機(jī)開發(fā)方式,主機(jī)系統(tǒng)采用運(yùn)行Windows2000/NT的工作站或PC,VxWorks則運(yùn)行在ARM等目標(biāo)處理器上。Tornado采用的主機(jī)-目標(biāo)機(jī)連接方式為以太網(wǎng)、串行線等,主機(jī)與目標(biāo)機(jī)之間的通信是通過運(yùn)行各自處理器上的代理進(jìn)程來完成的,使主機(jī)上的開發(fā)工具和目標(biāo)機(jī)的操作系統(tǒng)可以完全脫離相互連接的方式。Tornado提供了友好的可視化開發(fā)界面、交叉編譯環(huán)境、源碼級調(diào)試工具、目標(biāo)機(jī)命令解釋器和目標(biāo)機(jī)狀態(tài)監(jiān)視器等多種應(yīng)用工具,為應(yīng)用軟件開發(fā)提供了一個高效而可靠的平臺。

          ● 軟件設(shè)計(jì)原理

            軟件設(shè)計(jì)采用事件驅(qū)動機(jī)制;中斷事件激活I(lǐng)SR,ISR將事件排隊(duì),并通過信號量的v 操作通知處理任務(wù)。處理任務(wù)進(jìn)行p 操作,在沒有事件需要 處理時就會阻塞,如果得到信號量則根據(jù)事件隊(duì)列的內(nèi)容進(jìn)行相應(yīng)處理;事件處理任務(wù)為一永久循環(huán)。

          軟件設(shè)計(jì)流程如圖4所示。

          軟件設(shè)計(jì)流程圖

          圖4 軟件流程圖

          ● 軟件關(guān)鍵設(shè)計(jì)的具體實(shí)現(xiàn)

            (1)當(dāng)系統(tǒng)啟動時等待一段時間,若超時則正常加載內(nèi)核進(jìn)行引導(dǎo),若從串口UART接收到配置參數(shù)請求信息,則通過串口UART發(fā)送配置文件到PC端;PC端對配置參數(shù)進(jìn)行處理后,再將參數(shù)通過串口發(fā)送到設(shè)備,設(shè)備再將參數(shù)以文件的形式進(jìn)行存儲。

            (2)初始化手機(jī)模塊。先利用手機(jī)模塊的硬復(fù)位線將手機(jī)進(jìn)行硬復(fù)位,一直等到手機(jī)能響應(yīng)AT指令,再將手機(jī)的信息通知功能打開,初始化短信處理到文本模式,激活CDMA,一直等待,手機(jī)信號要足夠強(qiáng)。

          3)當(dāng)接收到滿足觸發(fā)條件的短信息后,發(fā)起中斷處理任務(wù),將UIM卡中的短消息讀出到緩沖,將短消息刪除,對緩沖中短消息的有效性進(jìn)行判斷,若為有效短消息則進(jìn)行相應(yīng)的處理,再將根據(jù)短消息配置后的參數(shù)保存。

            (4)系統(tǒng)根據(jù)觸發(fā)參數(shù)發(fā)起任務(wù)進(jìn)行拍照、封裝,調(diào)用建立PPP連接的函數(shù),先用AT指令A(yù)TD#777接通CDMA,然后初始化PPP連接,當(dāng)PPP連接完成后設(shè)置好相應(yīng)的IP參數(shù)。

            (5)然后初始化WAP相關(guān)參數(shù),建立WAP連接,調(diào)用彩信發(fā)送函數(shù)將圖片發(fā)送到目的移動通信終端用戶,斷開PPP連接。

            關(guān)鍵源代碼如下。

            STATUS mmsmain(viod)

            {

            int ioFd, i;

            pSysInfo = (sysInfo_t *) calloc(1, sizeof(sysInfo_t));

            pSysInfo->TIckRate = SYS_TICK_RATE;

            pSysInfo->pQueue = msgQCreate( SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO );

            pSysInfo->pCamQueue = msgQCreate( SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO );

            pSysInfo->pPhotoQueue = msgQCreate(SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO);

            pSysInfo->pModemQueue = msgQCreate(SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO);

            DEBUG_PRINT(("Now begin read cONfig information... "));

            if (readFlash() == ERROR)

            {

            initDefaultInfo();

            readFlash();

            }



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();