在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > μC/OS-II基礎(chǔ)上實(shí)現(xiàn)的無(wú)紙傳真收發(fā)系統(tǒng)

        μC/OS-II基礎(chǔ)上實(shí)現(xiàn)的無(wú)紙傳真收發(fā)系統(tǒng)

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

        4.4 功能模塊設(shè)計(jì)
        本設(shè)計(jì)自底向上包括如下3個(gè)功能模塊,如圖6所示。底層串口模塊、中層數(shù)據(jù)緩沖區(qū)模塊和上層模塊。各個(gè)模塊由μC/負(fù)責(zé)管理,其中底層串口模塊包含了所有基于串口的基本操作,包括讀串口和寫串口等;中層數(shù)據(jù)緩沖區(qū)模塊做了大量的細(xì)節(jié)性數(shù)據(jù)處理工作;上層模塊封裝了發(fā)送和接收傳真的基本功能。

        本文引用地址:http://www.biyoush.com/article/155877.htm

        f.jpg


        4.4.1 底層串口模塊
        底層串口模塊的代表性函數(shù)包括如下3個(gè)。
        ①void RxInterrupt_Handler();
        功能說(shuō)明:fax modem每次接收到數(shù)據(jù)后都會(huì)發(fā)生中斷,跳入此函數(shù)。通過(guò)mdm_append_data函數(shù)將串口收到的新數(shù)據(jù)添加到接收緩沖區(qū)。
        ②void USART1_SendByre(INT16U byte);
        功能說(shuō)明:直接向串口中發(fā)送一個(gè)字節(jié),并等待完成。
        ③void USART1 SendData(INT8U*data,INT16S len);
        功能說(shuō)明:直接向串口寫數(shù)據(jù)并等待完成,數(shù)據(jù)長(zhǎng)度不限。它被fax_send_cmd函數(shù)和fax_send_frame函數(shù)多次調(diào)用。
        4.4.2 中層數(shù)據(jù)緩沖區(qū)模塊
        本模塊采用隊(duì)列來(lái)管理數(shù)據(jù),如圖7所示。底層串口模塊收到數(shù)據(jù)后,將數(shù)據(jù)存入隊(duì)尾緩存,上層傳真模塊從隊(duì)頭取出數(shù)據(jù)進(jìn)行處理,這種方式使得程序不必關(guān)心串口接收數(shù)據(jù)的方式,一定程度上減小了程序的耦合性。

        g.jpg


        隊(duì)列的數(shù)據(jù)結(jié)構(gòu)定義如下:
        h.jpg
        i.jpg
        本模塊提供了以下接口函數(shù),供上層傳真機(jī)模塊調(diào)用。
        ①void mdm_init_buffer();
        功能說(shuō)明:本函數(shù)用于初始化緩沖區(qū),一般在程序啟動(dòng)時(shí)調(diào)用。
        ②char*mdm_get_line(int timeout);
        功能說(shuō)明:在timeout規(guī)定的時(shí)間里面,等待并讀取一行數(shù)據(jù)(以/r/n結(jié)尾),如果超時(shí)則返回NULL。
        ③int mdm_get_byte(char*byte,int timeout);
        功能說(shuō)明:在timeout規(guī)定的時(shí)間里,等待并讀取一個(gè)字節(jié)的數(shù)據(jù),如果有數(shù)據(jù)則返回1,如果超時(shí)則返回0。
        ④int mdm_get_byte_count();
        功能說(shuō)明:獲取當(dāng)前緩沖區(qū)內(nèi)的數(shù)據(jù)量,單位為字節(jié)。
        ⑤void mdm_clear_buffer();
        功能說(shuō)明:清空緩沖區(qū)的數(shù)據(jù)。
        ⑥void mdm_append_data(char data);
        功能說(shuō)明:向緩沖區(qū)隊(duì)尾添加一個(gè)數(shù)據(jù),該函數(shù)在串口接收中斷中被調(diào)用。
        4.4.3 上層傳真模塊
        上層傳真模塊分為發(fā)送傳真接口和接收傳真接口兩大部分,其中發(fā)送部分為1個(gè)集成的函數(shù),而接收部分為3個(gè)按時(shí)序相接的功能分支。
        (1)發(fā)送傳真接口
        原型說(shuō)明:im fax_send(char*num,char*page[]);
        功能說(shuō)明:發(fā)送傳真,對(duì)端的傳真號(hào)為num,傳真文件通過(guò)page變量傳入,結(jié)尾以NULL指針或空字符串結(jié)尾。
        (2)接收傳真接口
        ①int faX_ringing();
        功能說(shuō)明:循環(huán)檢測(cè)并接收響鈴,只有接通了,才會(huì)跳出循環(huán)。該函數(shù)可以在一個(gè)task里面調(diào)用,進(jìn)行傳真監(jiān)聽(tīng),當(dāng)收到“RING”時(shí),退出函數(shù),等待應(yīng)答。
        ②int fax_answer_and_connect();
        功能說(shuō)明:傳真應(yīng)答與連接。該函數(shù)一般在收到“RING”時(shí)調(diào)用。當(dāng)連接成功后,即可接收傳真。
        ③int fax_receive(int*pagenum,char*dir);
        功能說(shuō)明:接收傳真,收到的傳真頁(yè)數(shù)為pagenum,保存地址為dir。只有當(dāng)連接成功后才能調(diào)用該函數(shù)。
        4.5 傳真接口調(diào)用示例
        j.jpg

        結(jié)語(yǔ)
        本文對(duì)無(wú)紙傳真進(jìn)行了研究,在該研究的上開(kāi)發(fā)出一套實(shí)用的,其擴(kuò)展性強(qiáng),具有很好的移植性。一般的傳真機(jī)僅限于紙質(zhì)文件的傳輸,而本則輔助了紙質(zhì)文件與電子版文件的轉(zhuǎn)化傳輸。本存在的意義在于,用戶可以將此傳真模塊作為一個(gè)獨(dú)立功能單元集成到其他產(chǎn)品中,以較低的成本來(lái)增加產(chǎn)品的功能。


        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉