文獻標識碼: A
雙網(wǎng)傳真機是指可以接入Internet網(wǎng)絡和PSTN網(wǎng)絡中進行發(fā)送和接收文字,、圖像、圖文稿件的傳真機,。由于Internet技術的發(fā)展,,Internet以其方便性、價格低廉等特點在當今通信中占有重要地位,。普通傳真機通過PSTN網(wǎng)絡進行傳真,,發(fā)送和接收耗時,速度慢,,而且費用比較昂貴,。本文設計和開發(fā)的雙網(wǎng)傳真機不僅可以兼容普通傳真機,而且可以使用Internet網(wǎng)絡進行收發(fā)傳真,,具有速度快,、費用低廉的特點。
1 雙網(wǎng)傳真機接入網(wǎng)絡
本文設計的雙網(wǎng)傳真機接入Internet和傳真服務器進行通信,,通信協(xié)議是非實時傳真標準協(xié)議,,通過該傳真服務器中轉將傳真推送到目標傳真機,根據(jù)目標傳真機是雙網(wǎng)傳真機還是普通傳真機,,選擇對應的Internet網(wǎng)絡,、PSTN網(wǎng)絡進行推送。接入PSTN網(wǎng)絡和目標傳真機通過T30[1]協(xié)議進行通信,。通過Internet發(fā)送,,在掃描稿件時將稿件數(shù)據(jù)和信息封裝成Tiff文件的形式,通過非實時傳真標準協(xié)議將文件發(fā)送到傳真服務器,,傳真服務器判斷該傳真是發(fā)往普通傳真機還是雙網(wǎng)傳真機,。如果發(fā)往普通傳真機,服務器會解析Tiff文件并將解析出的傳真編碼數(shù)據(jù)發(fā)往普通傳真機;如果發(fā)往雙網(wǎng)數(shù)字傳真機,,則將該tiff文件放到用戶目錄中,,等待雙網(wǎng)傳真機自動或者手動收取。其在整個雙網(wǎng)傳真系統(tǒng)中的位置如圖1所示,。
2 雙網(wǎng)傳真機系統(tǒng)設計
本文設計的雙網(wǎng)傳真機以Nios II嵌入式軟核為處理器,,采用SoPC[2]的軟硬件協(xié)同設計方法進行設計,以求最佳的性能價格比,。SoPC技術硬件用Altera公司的FPGA技術來實現(xiàn),,軟件用C語言編程實現(xiàn),操作系統(tǒng)平臺采用實時操作系統(tǒng)內核uC/OS-II,、TCP/IP協(xié)議棧使用Niche TCP/IP協(xié)議棧,。以Altera Cyclone EP1C20為實驗板進行系統(tǒng)實現(xiàn)和驗證。
根據(jù)對傳真機功能和性能的分析,,提出將耗時,、算法復雜、數(shù)據(jù)處理量大的模塊用電路實現(xiàn),,需要提供精確的時序信號邏輯也用電路實現(xiàn),,而對時間要求不苛刻的場合,、CPU處理速度能跟上的功能模塊用軟件來實現(xiàn),。同時盡量利用可以利用的軟硬件模塊單元,增強系統(tǒng)的穩(wěn)定性和可靠性,,減少重復設計,,縮短開發(fā)周期。系統(tǒng)設計的結構圖如圖2所示,。
系統(tǒng)開發(fā)工具采用Altera公司提供的Quartus II和Nios II IDE,。在Quartus II軟件內,使用SoPC Builder開發(fā)硬件模塊,,形成硬件設計文件和自定義軟件開發(fā)環(huán)境,。Nios II IDE是基于GNU C/C++編譯器和Eclipse IDE的,設計者可以很快開發(fā),、調試和仿真Nios II系統(tǒng),,開發(fā)模塊驅動程序、板級支持包(BSP)及用戶程序,。
2.1 雙網(wǎng)數(shù)字傳真機系統(tǒng)硬件設計
本文設計的雙網(wǎng)數(shù)字傳真機以Altera Nios II軟核為處理器,、CIS掃描器件、電機,、TPH打印器件,、CIS、電機、TPH打印驅動板,、Alter EP1C20開發(fā)板,、Modem為硬件平臺,通過Altera的FPGA實現(xiàn)硬件電路模塊,,主要需要實現(xiàn)的電路模塊有A/D采樣控制邏輯模塊,、圖像二值化處理模塊、MH[3]編碼模塊,、MH譯碼模塊,、掃描、打印,、電機時序驅動邏輯模塊,。
(1)A/D采樣控制邏輯模塊
通過CIS掃描器件把原稿的光信號轉化為電信號,將CIS掃描器件獲得的模擬電信號通過A/D轉換器件轉化為8 bit的數(shù)字信號輸入圖像處理二值化模塊,。A/D采樣控制邏輯完成A/D器件的時序驅動,。
(2)圖像二值化處理模塊
本模塊輸入數(shù)據(jù)為A/D轉化后的每像素8 bit數(shù)據(jù),根據(jù)掃描原有文本,、灰度圖像,、圖文并茂3種類型自動判別選用不同的算法,進行偽灰度處理,,即根據(jù)抖動表(Dither)進行二值化處理,,得到人眼感覺有層次(灰度變化)的二值圖像,即半色調圖像(Halftone),?;叶戎祱D像轉化為二值圖像的算法原理是:通過實際的中間色調信號與存儲在ROM中的閾值信號比較形成二值圖像信號。
一般傳真機采用的抖動表數(shù)據(jù)是8×8的Bayes矩陣,,在實驗中采用該方法處理得到的效果并不理想,,圖像對比度不是很強烈,整體效果較暗,。因此作者根據(jù)FPGA硬件處理的特性,,采用16×16的抖動矩陣對傳真圖像進行處理。采用該方法適應了FPGA 芯片擁有豐富寄存器資源的特點,,用來存儲改進抖動表,,在不影響處理速度的情況下,明顯改進圖像的處理效果,,提高圖像對比度,,圖像效果比較接近原圖。從得出的效果圖可以明顯看出,,改進方案比原有Bayer抖動表做抖動的圖像對比度要好得多,,代價為增加了一千多位寄存器,。從而較好地解決了對圖像二值化處理中對比度不強的問題。
(3)編碼模塊
將二值化后的圖像數(shù)據(jù)經一維MH編碼后交付通信模塊使用,。MH編碼是一維改進的Huffman編碼,,是ITU-T T.4[4]標準中的一部分,ITU-T T.4標準的全稱是三類傳真機終端文檔傳輸標準,。MH編碼具有效率高,、容易擴展等特點。三類傳真機一般都實現(xiàn)了一維MH編碼和譯碼,,有的也實現(xiàn)了二維MR編碼,,本文用硬件電路實現(xiàn)一維MH編碼。對于二值信源來說,,一幅傳真圖像是由掃描線上的像素組成的,。而每一掃描線又總是由一些黑像素和白像素組成。將連續(xù)發(fā)生的黑像素為連‘1’,,白像素為連‘0’,,也稱為黑游程和白游程。連‘1’的個數(shù)稱為黑游程的長度,,連‘0’的個數(shù)稱為白游程的長度,。黑白游程交替出現(xiàn)。針對游程編碼,,哈夫曼MH碼元很好地解決了傳真信源的壓縮問題,,是T.30協(xié)議中規(guī)定的編碼方式之一。實現(xiàn)時通過讀取像素信息存儲FIFO判斷是黑游程還是白游程,。當發(fā)生了黑白游程切換時,,根據(jù)黑白游程計數(shù)形成碼表訪問地址,根據(jù)地址查找碼表得到對應的編碼碼元,。MHC編碼硬件模塊圖如圖3所示。
該編碼數(shù)據(jù)將封裝在T30協(xié)議中進行傳輸,,T30協(xié)議規(guī)定的每樣張的數(shù)據(jù)傳輸格式如圖4所示,。其中EOL為End Of Line,即行同步碼,,格式為000000000001,。同步碼是緊跟在每一行掃描線之后的特殊碼字,它在有效數(shù)據(jù)中不可能出現(xiàn),,因而在突發(fā)錯誤之后能重新建立同步,。特殊地,每頁文件的第一個數(shù)據(jù)之前也設置一個EOL,。
填充碼fill的作用是保證每掃描線,,即每一行的數(shù)據(jù)傳輸時間不小于某一規(guī)定時間T,,T為發(fā)送一行編碼數(shù)據(jù)所用的最小時間,ITU-T T.4標準建議中規(guī)定T=20 ms,,不足20 ms時間應加入填充碼,,其格式為長度不一的全“0”串。RTC為返回控制碼,,其格式為6個連發(fā)的EOL碼,,表示一頁文件碼的傳輸結束。
在通過Internet進行傳真時需要將MH編碼數(shù)據(jù)封裝在TIFF文件中,,封裝成TIFF文件的過程通過軟件模塊實現(xiàn),。
(4)譯碼模塊
基于FPGA硬件電路實現(xiàn)圖像MH譯碼模塊,采用快速譯碼策略,。在譯碼時,,由于碼元不等長且數(shù)據(jù)量較大,構造譯碼樹較困難,,應采用快速譯碼方法,。快速譯碼算法的基本思想是采取多步合一的方法,,一次輸入的不是一個碼元,,而是多個碼元。根據(jù)碼表的特點可知,,白游程最短碼長是4,,黑游程最短碼長是2。由此在譯碼開始時,,碼元是以穿行的方式進入譯碼電路,,對白游程可以直接讀取4 bit,進入譯碼查找,,若非完整編碼再逐位讀?。粚谟纬炭梢灾苯幼x取2 bit,,進入譯碼查找,,若非完整編碼再逐位讀取。譯碼的具體算法如下:
①按游程類型讀取對應最小編碼長度編碼,;
②在形成碼中進行匹配,,若成功,按游程類型繼續(xù)讀取對應最小編碼長度編碼,,轉入③,;否則轉入④;
③終結碼中匹配,,失敗則讀取下一位繼續(xù)匹配,,直至成功,;
④在終結碼中進行匹配,匹配成功則跳入①重新開始,;否則讀取下一位編碼,,轉入②。重復以上操作,,直到本行結束,;
(5)掃描、打印,、電機驅動邏輯,。
本硬件模塊采用FPGA實現(xiàn),主要提供CIS掃描器件,、TPH打印器件,、電機的驅動時序信號。
2.2 雙網(wǎng)數(shù)字傳真機軟件設計
操作系統(tǒng)采用實時操作系統(tǒng)內核?滋C/OS-II,,硬件抽象層HAL[5]由Nios II開發(fā)工具生成,,TCP/IP協(xié)議棧使用移植到μC/OS-II上的Niche TCP/IP協(xié)議棧。Altera EP1C20開發(fā)板含有SMSC LAN91C111-NE MAC/PHY芯片,,該芯片完成網(wǎng)絡中MAC/PHY功能,。軟件主要完成系統(tǒng)控制和T30協(xié)議通信過程、非實時傳真通信過程,、Tiff[6]文件創(chuàng)建,、Tiff文件解析。由于μC/OS-II是多任務的實時內核,,故系統(tǒng)劃分和設計了以下任務:
(1)Init任務:初始化任務,,建立任務之間的通信量。
(2)TCP/IP協(xié)議棧任務:Inet_main任務,,該任務負責TCP/IP協(xié)議的運行,。
(3)clock tick任務:系統(tǒng)ticks任務。
(4)T30發(fā)送任務:實現(xiàn)發(fā)送一封傳真的T30通信過程,。
(5)T30接收任務:實現(xiàn)接收一封傳真的T30通信過程,。
(6)SMTP發(fā)送任務:通過SMTP命令EHLO、AUTH,、RCPT、MAIL,、DATA,、QUIT和傳真服務器進行對話,基于SMTP協(xié)議實現(xiàn)非實時傳真通信協(xié)議,,即按照服務器接收的發(fā)送傳真格式發(fā)送一封特殊郵件到服務器,。其中傳真數(shù)據(jù)文件以附件的方式附在這封有固定格式和含義的郵件中,,圖像數(shù)據(jù)需要封裝成Tiff文件的形式,附件發(fā)送時需要按照SMTP協(xié)議將數(shù)據(jù)重新編碼為base64格式的編碼數(shù)據(jù)才能進行發(fā)送,。該封郵件內容固定格式中含有賬號密碼,、發(fā)送參數(shù)、發(fā)往目標號碼列表信息等內容,,是非實時傳真通信協(xié)議中規(guī)定的內容,。
(7)POP3接收任務:通過POP3命令USER、PASS,、STAT,、RETR、QUIT實現(xiàn)與傳真服務器的對話,,從傳真服務器收取一封特殊的郵件,,該郵件的附件即為傳真圖像數(shù)據(jù)Tiff文件。收取下來的Tiff文件是base64編碼數(shù)據(jù),,首先需要將文件數(shù)據(jù)進行base64解碼還原出Tiff文件,。
(8)Tiff文件解碼任務:Tiff文件是標簽式文件,按照Tiff文件的格式和對應標簽含義解析出Tiff文件的信息和具體的圖像數(shù)據(jù),,然后觸發(fā)MH解碼電路模塊工作并驅動電機和TPH打印模塊打印黑白像素點,。
(9)創(chuàng)建Tiff文件任務:根據(jù)Tiff文件信息標簽組建Tiff文件。
雙網(wǎng)傳真機系統(tǒng)在Altera Cyclone EP1C20實驗板,、外加驅動板,、Modem等硬件基礎上開發(fā)成功,通過反復軟硬件調試,,軟硬件運行穩(wěn)定,、達到系統(tǒng)功能指標。利用了μC/OS-II能夠穩(wěn)定,、安全處理并發(fā)多任務這一特點,,軟件模塊穩(wěn)定運行,體現(xiàn)出較高的實時性和可靠性,,取得了較好的實際效果,。本系統(tǒng)可以自己設計和生產帶Altera FPGA芯片的實驗板,集成Ethernet MAC/PHY芯片和Modem芯片等,,降低系統(tǒng)成本,。同時本系統(tǒng)還可以與PC機聯(lián)網(wǎng),通過PC機向雙網(wǎng)傳真機發(fā)送文件和接收文件,,這樣可以提高工作效率并減少紙張浪費,,適合于公司集團用戶作為傳真中轉工作機,具有一定的市場應用價值,。
參考文獻
[1] ITU-T Recommendation T.30 Procedures for document facsi-mile transmission in the general switched telephone network[S].2005.
[2] 李蘭英.Nios II嵌入式軟核SoPC設計原理及應用[M].北京:北京航空航天大學出版社,,2006.
[3] 劉立柱.網(wǎng)絡傳真通信原理與技術[M].北京:國防工業(yè)出版社,,2006.
[4] ITU-T Recommendation T.4 Standardization of Group 3 facsimile terminals for document transmission[S].2003.
[5] Nios II軟件架構解析[M].西安:西安電子科技大學出版社,2007.
[6] RFC2306-Tag Image File Format(TIFF)-F Profile for Facsimile[S],,1998.