日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件

摘要:對T.30協(xié)議和T.4協(xié)議進行了深入的研究,設計出了可靠的傳真收發(fā)流程。設計的傳真數(shù)據(jù)解析樹對數(shù)據(jù)進行解析。在μC/OS-II操作系統(tǒng)下實現(xiàn)了無紙傳真收發(fā)。該系統(tǒng)對資源要求低,能夠在低端嵌入式硬件上運行,支持的最高傳輸速率為14400bps。用戶可以將該系統(tǒng)視作一個傳真機功能模塊,嵌入到諸如可視電話之類的設備中。以較低的成本集成傳真功能,也可以作為獨立系統(tǒng)應用于移動辦公場合。

引言

隨著Internet的高速發(fā)展,通信工具日益更新,傳真憑借其具有憑證確認、快速、方便等特點,是企業(yè)不可或缺的通信工具。傳統(tǒng)硬件傳真機存在很多問題,影響了企業(yè)使用傳真機的成本和效率。很多企業(yè)已經(jīng)放棄使用傳統(tǒng)傳真機,或是尋找替代產品。無紙傳真系統(tǒng)正是針對企業(yè)的這種需求應運而生的。其實質是電子化收發(fā)傳真。無紙化傳真系統(tǒng)啟動后,在無人參與條件下可自動可靠地運行,減少多余的環(huán)節(jié),縮短信息的傳遞時間,使傳真盡快得到處理。同時,增強了傳真的保密性。電子化過程可以節(jié)省大量資源,包括人力、紙張、打印、通信費用、維護費用等,從而減少成本。目前無紙化傳真系統(tǒng)對企業(yè)的重要作用已經(jīng)逐步顯現(xiàn),使用也越來越廣泛。

1 傳真協(xié)議介紹

T.30協(xié)議為PSTN網(wǎng)上的傳真?zhèn)鬏攨f(xié)議與規(guī)程,是標準傳真。它對3類傳真機在普通電話網(wǎng)上的通信流程、所采用的信號格式、控制信令以及糾錯方式都作了詳細的描述和規(guī)定。該協(xié)議規(guī)定了8種可能的操作方式,每種操作方式均可用5個獨立而又連貫的階段來描述:呼叫建立階段、報文傳輸前標識和選擇所需性能的過程、報文傳輸階段、報文后處理階段和呼叫釋放階段。其中傳真報文的傳輸將按照T4協(xié)議中所描述的調制方式進行。

T4是ITU—T制定的傳真協(xié)議。該協(xié)議用于3類傳真終端文件傳輸?shù)臉藴驶瘏f(xié)議。它定義了黑白文件和彩色文件在普通電話交換網(wǎng),國際租用電路以及ISDN進行三類傳真的各種特性,包括編碼、線掃描等定義。

2 μC/OS-lI操作系統(tǒng)介紹

μC/OS-II是一種公開源代碼、結構小巧、具有可剝奪實時內核的實時操作系統(tǒng)。μC/OS-II大部分代碼是用C語言編寫的。CPU硬件相關部分是用匯編語言編寫的??偭考s200行的匯編語言部分被壓縮到最低限度,為的是便于移植到其他的CPU上。用戶只要有標準的ANSI的C交叉編譯器、匯編器、連接器等軟件工具,就可以將μC/OS-II嵌入到開發(fā)的產品中。μC/OS-II具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點。最小內核可編譯至2KB。μC/OS-II操作系統(tǒng)已經(jīng)移植到了大部分知名的CPU上。

3 傳真數(shù)據(jù)處理的算法設計

收到傳真數(shù)據(jù)后,往往需要對數(shù)據(jù)進行解析,比如生成tiff文件、格式轉換、錯誤統(tǒng)計等。由前文所述,T.4協(xié)議中規(guī)定了傳真數(shù)據(jù)采用前綴編碼,所以本文采用霍夫曼樹進行數(shù)據(jù)解析。

霍夫曼算法一般用于數(shù)據(jù)壓縮,基本思想是根據(jù)數(shù)據(jù)的統(tǒng)計頻度,生成一種帶權路徑長度最短的二叉樹。從根節(jié)點到葉子節(jié)點所經(jīng)歷的路徑即代表該葉子節(jié)點的編碼。本文采用了這種思想對傳真數(shù)據(jù)進行解析,比如N的編碼為0001,該編碼為前綴編碼,每個碼字之間不會出現(xiàn)混淆?;舴蚵鏄淙鐖D1所示。

基于霍夫曼樹的思想,將T.4協(xié)議中對傳真掃描點的編碼構建成一顆帶權二叉樹,如圖2所示。

其中每一個葉子節(jié)點對應于某一個編碼,首先設置一個游標,用于標識當前位置,其初始位置為根節(jié)點,收到傳真數(shù)據(jù)后,根據(jù)數(shù)據(jù)中的bit位移動游標,可能有以下3種情況:

①游標到達某一個葉子節(jié)點,但此葉子節(jié)點不是EOL,表明收到一個完整的編碼,但1行還沒結束,游標返回到根節(jié)點;
②游標到達EOL葉子節(jié)點,表明1行結束,游標返回根節(jié)點;
③游標下一步?jīng)]有路徑可走,表明數(shù)據(jù)出錯,此時需要搜尋下一個EOL用于重新同步。

4 無紙傳真收發(fā)系統(tǒng)設計

4.1 基本模式

按照T.30協(xié)議規(guī)定,文件傳真在公用電話交換網(wǎng)上的傳輸操作方法可能有8種組合,如表1所列。本文設計的系統(tǒng)采用的操作方法為4-T,即主叫站與被叫站均為自動操作,主叫站作為傳真的發(fā)送方,被叫站作為傳真的接收方。

4.2 硬件框架

整個傳真系統(tǒng)的硬件框圖如圖3所示。左側虛線框內模塊和右側的FAX模塊是從交換機的兩根電話線中分離出來的2個獨立傳真模塊。右側的FAX模塊是普通紙傳真機,為測試左側虛框內模塊的功能而配置的。左側虛線框內4大模塊為無紙傳真模塊。

無紙傳真模塊中,左側的PC機為輔助設備,利用PC機上的集成開發(fā)調試環(huán)境IAR和代碼編輯軟件sourceinsight進行源碼編輯與調試,將調試無誤的代碼通過JLINK下載到STM32芯片中。STM32芯片和Fax Modem都是通過USB線與PC機相連來供電。

Fax Modem內部包含CX68033芯片,其通過串口與STM32芯片相連,支持標準的AT命令集,使得二者可以交互信令和數(shù)據(jù),STM32芯片主要負責任務管理和文件管理,并且通過串口控制Fax Modem。同樣為了便于測試,焊了一根線接出“USB轉串口模塊”來與電腦通信,進而可以利用串口調試助手軟件來輔助測試。

4.3 總流程設計

兩臺傳真機相互通信的規(guī)約稱為協(xié)議或傳真呼叫時間序列,分為A、B、C、D、E五個階段,如圖4所示。

(1)階段A:呼叫建立階段

這一階段與電話呼叫建立的過程相似,不同之處在于要發(fā)送包含標識發(fā)送/接收終端的傳真單音。

(2)階段B:報文前處理階段

這個處理階段主要進行傳真能力的協(xié)商與訓練。完成傳真機功能的鑒別、選送合適的傳輸模式、核對相位、發(fā)送線路校驗信號以及可以接收的信號等。

過程描述:首先由被叫站發(fā)送DIS信號,DIS信號中包含了被叫站傳真機具有的各種兼容性功能信息、傳輸數(shù)碼率、掃描線密度和最小行掃描時間等。當主叫站收到DIS信號后,了解到被叫站傳真機的功能,再根據(jù)本站傳真機的功能和操作人員事先安排的指令,發(fā)出DCS信號,DCS信號是數(shù)字接收指令,由發(fā)送方進行發(fā)送,要求接收方是接收傳真。該指令還指定了接收傳真機的工作方式、傳輸數(shù)碼率、掃描線密度、稿件寬度以及最小行掃描時間等。被叫站接收到DCS信號后,按命令選擇合適的工作模式,這時,主叫站發(fā)出線路校驗信號TCF。TCF信號是一個持續(xù)時間為1.5s的0序列,它用于校驗信道在這個數(shù)碼率下可接受的程度。當被叫站收到這個線路校驗信號之后認為合格,就發(fā)送CFR信號,CFR信號標志全部報文前處理過程已經(jīng)結束。當主叫站收到CFR信號,就可以發(fā)送稿件。

(3)階段C:報文傳輸過程

按照T.4規(guī)程傳輸傳真報文,并進行報文傳輸控制,包括報文同步、誤碼檢測和糾錯、線路監(jiān)測等。

(4)階段D:報文后處理階段

這個處理階段主要提供報文的證實、報文結束、多頁續(xù)發(fā)等控制操作。當發(fā)送方發(fā)完稿件后,將出現(xiàn)若干不同的情況,如是否還要繼續(xù)向接收方發(fā)送稿件,如果需要發(fā)送,是繼續(xù)發(fā)送還是重新進行報文前處理后再發(fā)送,是否暫時中斷進行通話后再發(fā)送等。為了滿足上述要求,發(fā)送方共設置6種主要的傳真控制字段分別對應6種指令。當接收方收到這6種指令中的一種后,就會發(fā)出響應信號,這些指令和響應只有傳真控制字段,而無傳真信息字段。

(5)階段E:呼叫釋放階段

呼叫釋放發(fā)生在某一特定的條件下,當最后一頁稿件發(fā)送完畢后,進行最后一個信息處理,發(fā)送EOP信號,在EOP信號之后,過程轉入階段E,呼叫釋放,切斷接續(xù),電路由傳真狀態(tài)返回到電話狀態(tài)。

圖5是單頁傳真正常傳輸?shù)囊粋€實例,便于傳真流程的理解。

4.4 功能模塊設計

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

4.4.1 底層串口模塊

底層串口模塊的代表性函數(shù)包括如下3個。

①void RxInterrupt_Handler();
功能說明:fax modem每次接收到數(shù)據(jù)后都會發(fā)生中斷,跳入此函數(shù)。通過mdm_append_data函數(shù)將串口收到的新數(shù)據(jù)添加到接收緩沖區(qū)。

②void USART1_SendByre(INT16U byte);
功能說明:直接向串口中發(fā)送一個字節(jié),并等待完成。

③void USART1 SendData(INT8U*data,INT16S len);
功能說明:直接向串口寫數(shù)據(jù)并等待完成,數(shù)據(jù)長度不限。它被fax_send_cmd函數(shù)和fax_send_frame函數(shù)多次調用。

4.4.2 中層數(shù)據(jù)緩沖區(qū)模塊

本模塊采用隊列來管理數(shù)據(jù),如圖7所示。底層串口模塊收到數(shù)據(jù)后,將數(shù)據(jù)存入隊尾緩存,上層傳真模塊從隊頭取出數(shù)據(jù)進行處理,這種方式使得程序不必關心串口接收數(shù)據(jù)的方式,一定程度上減小了程序的耦合性。

隊列的數(shù)據(jù)結構定義如下:

本模塊提供了以下接口函數(shù),供上層傳真機模塊調用。

①void mdm_init_buffer();
功能說明:本函數(shù)用于初始化緩沖區(qū),一般在程序啟動時調用。

②char*mdm_get_line(int timeout);
功能說明:在timeout規(guī)定的時間里面,等待并讀取一行數(shù)據(jù)(以/r/n結尾),如果超時則返回NULL。

③int mdm_get_byte(char*byte,int timeout);
功能說明:在timeout規(guī)定的時間里,等待并讀取一個字節(jié)的數(shù)據(jù),如果有數(shù)據(jù)則返回1,如果超時則返回0。

④int mdm_get_byte_count();
功能說明:獲取當前緩沖區(qū)內的數(shù)據(jù)量,單位為字節(jié)。

⑤void mdm_clear_buffer();
功能說明:清空緩沖區(qū)的數(shù)據(jù)。

⑥void mdm_append_data(char data);
功能說明:向緩沖區(qū)隊尾添加一個數(shù)據(jù),該函數(shù)在串口接收中斷中被調用。

4.4.3 上層傳真模塊

上層傳真模塊分為發(fā)送傳真接口和接收傳真接口兩大部分,其中發(fā)送部分為1個集成的函數(shù),而接收部分為3個按時序相接的功能分支。

(1)發(fā)送傳真接口

原型說明:im fax_send(char*num,char*page[]);
功能說明:發(fā)送傳真,對端的傳真號為num,傳真文件通過page變量傳入,結尾以NULL指針或空字符串結尾。

(2)接收傳真接口

①int faX_ringing();
功能說明:循環(huán)檢測并接收響鈴,只有接通了,才會跳出循環(huán)。該函數(shù)可以在一個task里面調用,進行傳真監(jiān)聽,當收到“RING”時,退出函數(shù),等待應答。

②int fax_answer_and_connect();
功能說明:傳真應答與連接。該函數(shù)一般在收到“RING”時調用。當連接成功后,即可接收傳真。

③int fax_receive(int*pagenum,char*dir);
功能說明:接收傳真,收到的傳真頁數(shù)為pagenum,保存地址為dir。只有當連接成功后才能調用該函數(shù)。

4.5 傳真接口調用示例

結語

本文對無紙傳真進行了研究,在該研究的基礎上開發(fā)出一套實用的系統(tǒng),其擴展性強,具有很好的移植性。一般的傳真機僅限于紙質文件的傳輸,而本系統(tǒng)則輔助實現(xiàn)了紙質文件與電子版文件的轉化傳輸。本系統(tǒng)存在的意義在于,用戶可以將此傳真模塊作為一個獨立功能單元集成到其他產品中,以較低的成本來增加產品的功能。

作者:張聰敏 劉軍 劉福良 游向東 來源:單片機與嵌入式系統(tǒng)

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

隨著通信技術的發(fā)展,我們擁有了多種多樣的通信方式,從基本的固定語音電話、移動電話到短信、彩信,以及傳真、語音信箱、Email、音頻會議、視頻會議等。

關鍵字: 協(xié)作通信 統(tǒng)一通信 傳真

工業(yè)級光纖收發(fā)器的芯片是整個設備的核心,它和一些硬件設備決定了工業(yè)級光纖收發(fā)器的性能、壽命等是否滿足要求。那么,對于光電介質轉換芯片的性能具體有哪些呢?下面飛暢科技就給大家詳細講解一下,希望大家對工業(yè)級光纖收發(fā)器有更深層...

關鍵字: 收發(fā) 動作

  本文主要搭建一個多生理參數(shù)測量系統(tǒng)的數(shù)據(jù)處理平臺,在FPGA中嵌入一個32位Nios II軟核處理器,用于控制數(shù)據(jù)的傳輸、存儲及顯示。主要完成了此數(shù)據(jù)處理平臺硬件系統(tǒng)的定制及編寫相應程序,以控制數(shù)

關鍵字: NIOS ii 生理

據(jù)9月9日消息,索尼Xperia 5 Ⅱ將于9月17日正式發(fā)布。 該機現(xiàn)已通過FCC認證,F(xiàn)CC文件顯示索尼Xperia 5 Ⅱ配備的充電器型號為Sony UCH32,支持18W快充。

關鍵字: xperia 5 1 ii

7 月 14 日消息 蘋果 Apple IIe 電腦在 37 年前的 1983 年問世,但不要以為它不能勝任現(xiàn)代的任務。有 Twitter 用戶近日展示了如何讓 Apple IIe 實現(xiàn)現(xiàn)代化的的任

關鍵字: apple ii

華碩在2019年經(jīng)歷了一年的復蘇,其堅實的Zenfone 6和強大的ROG Phone II游戲引擎將于今年問世。 盡管Zenfone在11月收購了Android 10,但該公司現(xiàn)在正為ROG Phone II推出穩(wěn)定的...

關鍵字: 10 Android ii phone rog 華碩

Linux內核對其驅動程序進行了修改,來支持Macintosh II系統(tǒng)上的Apple Desktop Bus。

關鍵字: ii Linux macintosh 驅動

在這篇文章中,小編將為大家?guī)砣A碩全新ROG Zenith II Extreme的相關報道。如果你對本文即將要講解的內容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關鍵字: extreme ii rog zenith 華碩 tda21490

不考慮這兩年來處理器從4核達大幅提升到8核甚至16核的情況,單從CPU性能來看,大家普遍認為過去幾年CPU都是在擠牙膏升級,原因都懂得。那問題來了,如果是跨度十年的話,那如今的CPU到底比09年的CP

關鍵字: 810 ii x86 處理器 擠牙膏 酷睿 phenom

主板產品一直是人們的關注焦點之一,因此在這篇文章中,小編將為大家?guī)砣A碩ROG ZENITH II EXTREME。如果你想了解它的詳細內容,請繼續(xù)閱讀。

關鍵字: extreme ii rog zenith 主板 華碩
關閉