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