《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于Nios II的雙網(wǎng)傳真機(jī)系統(tǒng)的研究與開(kāi)發(fā)
基于Nios II的雙網(wǎng)傳真機(jī)系統(tǒng)的研究與開(kāi)發(fā)
來(lái)源:電子技術(shù)應(yīng)用2010年第5期
劉永平,韓俊剛
西安郵電學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,陜西 西安710061
摘要: 基于Nios-II設(shè)計(jì)和實(shí)現(xiàn)了支持PSTN網(wǎng)絡(luò)、Internet網(wǎng)絡(luò)的雙網(wǎng)傳真機(jī)系統(tǒng),利用FPGA實(shí)現(xiàn)了傳真機(jī)系統(tǒng)的多個(gè)電路模塊,包括A/D采樣控制邏輯、二值化圖像處理模塊、MH編碼模塊、MH譯碼模塊和CIS掃描、TPH打印、電機(jī)控制模塊?;趗C/OS-II、Niche TCP/IP實(shí)現(xiàn)了T30協(xié)議通信、非實(shí)時(shí)網(wǎng)絡(luò)傳真通信、Tiff文件創(chuàng)建、Tiff文件解析模塊。使用Altera Cyclone EP1C20開(kāi)發(fā)板實(shí)現(xiàn)和驗(yàn)證了整機(jī)系統(tǒng),經(jīng)過(guò)軟硬件聯(lián)調(diào),達(dá)到了系統(tǒng)設(shè)計(jì)指標(biāo)和功能。
中圖分類號(hào): TP211.6;TP212.14
文獻(xiàn)標(biāo)識(shí)碼: A
Design of CCD wire alignment transducer based on C8051F410
CHAI Shi Jie,DAI Yu Xing,WEN Ye Ting
College of Electrical and Information Engineering, Hunan University,Changsha 410082,China
Abstract: Choosing C8051F410 as the hardware control platform , using the advanced CCD technology , according to dam deformation monitoring′s demand, the paper designs high accuracy and automatic measuring wire alignment transducer. Principle of work ,main hardware design scheme and software flow chart of system are introduced primely in this paper. The measurement result indicated that this instrument has very strong usability.
Key words : CCD;dam deformation monitoring;automatic measuring;wire alignment transducer

    雙網(wǎng)傳真機(jī)是指可以接入Internet網(wǎng)絡(luò)和PSTN網(wǎng)絡(luò)中進(jìn)行發(fā)送和接收文字、圖像、圖文稿件的傳真機(jī)。由于Internet技術(shù)的發(fā)展,Internet以其方便性、價(jià)格低廉等特點(diǎn)在當(dāng)今通信中占有重要地位。普通傳真機(jī)通過(guò)PSTN網(wǎng)絡(luò)進(jìn)行傳真,發(fā)送和接收耗時(shí),速度慢,而且費(fèi)用比較昂貴。本文設(shè)計(jì)和開(kāi)發(fā)的雙網(wǎng)傳真機(jī)不僅可以兼容普通傳真機(jī),而且可以使用Internet網(wǎng)絡(luò)進(jìn)行收發(fā)傳真,具有速度快、費(fèi)用低廉的特點(diǎn)。
1 雙網(wǎng)傳真機(jī)接入網(wǎng)絡(luò)
    本文設(shè)計(jì)的雙網(wǎng)傳真機(jī)接入Internet和傳真服務(wù)器進(jìn)行通信,通信協(xié)議是非實(shí)時(shí)傳真標(biāo)準(zhǔn)協(xié)議,通過(guò)該傳真服務(wù)器中轉(zhuǎn)將傳真推送到目標(biāo)傳真機(jī),根據(jù)目標(biāo)傳真機(jī)是雙網(wǎng)傳真機(jī)還是普通傳真機(jī),選擇對(duì)應(yīng)的Internet網(wǎng)絡(luò)、PSTN網(wǎng)絡(luò)進(jìn)行推送。接入PSTN網(wǎng)絡(luò)和目標(biāo)傳真機(jī)通過(guò)T30[1]協(xié)議進(jìn)行通信。通過(guò)Internet發(fā)送,在掃描稿件時(shí)將稿件數(shù)據(jù)和信息封裝成Tiff文件的形式,通過(guò)非實(shí)時(shí)傳真標(biāo)準(zhǔn)協(xié)議將文件發(fā)送到傳真服務(wù)器,傳真服務(wù)器判斷該傳真是發(fā)往普通傳真機(jī)還是雙網(wǎng)傳真機(jī)。如果發(fā)往普通傳真機(jī),服務(wù)器會(huì)解析Tiff文件并將解析出的傳真編碼數(shù)據(jù)發(fā)往普通傳真機(jī);如果發(fā)往雙網(wǎng)數(shù)字傳真機(jī),則將該tiff文件放到用戶目錄中,等待雙網(wǎng)傳真機(jī)自動(dòng)或者手動(dòng)收取。其在整個(gè)雙網(wǎng)傳真系統(tǒng)中的位置如圖1所示。

2 雙網(wǎng)傳真機(jī)系統(tǒng)設(shè)計(jì)
    本文設(shè)計(jì)的雙網(wǎng)傳真機(jī)以Nios II嵌入式軟核為處理器,采用SoPC[2]的軟硬件協(xié)同設(shè)計(jì)方法進(jìn)行設(shè)計(jì),以求最佳的性能價(jià)格比。SoPC技術(shù)硬件用Altera公司的FPGA技術(shù)來(lái)實(shí)現(xiàn),軟件用C語(yǔ)言編程實(shí)現(xiàn),操作系統(tǒng)平臺(tái)采用實(shí)時(shí)操作系統(tǒng)內(nèi)核uC/OS-II、TCP/IP協(xié)議棧使用Niche TCP/IP協(xié)議棧。以Altera Cyclone EP1C20為實(shí)驗(yàn)板進(jìn)行系統(tǒng)實(shí)現(xiàn)和驗(yàn)證。
    根據(jù)對(duì)傳真機(jī)功能和性能的分析,提出將耗時(shí)、算法復(fù)雜、數(shù)據(jù)處理量大的模塊用電路實(shí)現(xiàn),需要提供精確的時(shí)序信號(hào)邏輯也用電路實(shí)現(xiàn),而對(duì)時(shí)間要求不苛刻的場(chǎng)合、CPU處理速度能跟上的功能模塊用軟件來(lái)實(shí)現(xiàn)。同時(shí)盡量利用可以利用的軟硬件模塊單元,增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性,減少重復(fù)設(shè)計(jì),縮短開(kāi)發(fā)周期。系統(tǒng)設(shè)計(jì)的結(jié)構(gòu)圖如圖2所示。


    系統(tǒng)開(kāi)發(fā)工具采用Altera公司提供的Quartus II和Nios II IDE。在Quartus II軟件內(nèi),使用SoPC Builder開(kāi)發(fā)硬件模塊,形成硬件設(shè)計(jì)文件和自定義軟件開(kāi)發(fā)環(huán)境。Nios II IDE是基于GNU C/C++編譯器和Eclipse IDE的,設(shè)計(jì)者可以很快開(kāi)發(fā)、調(diào)試和仿真Nios II系統(tǒng),開(kāi)發(fā)模塊驅(qū)動(dòng)程序、板級(jí)支持包(BSP)及用戶程序。
2.1 雙網(wǎng)數(shù)字傳真機(jī)系統(tǒng)硬件設(shè)計(jì)
    本文設(shè)計(jì)的雙網(wǎng)數(shù)字傳真機(jī)以Altera Nios II軟核為處理器、CIS掃描器件、電機(jī)、TPH打印器件、CIS、電機(jī)、TPH打印驅(qū)動(dòng)板、Alter EP1C20開(kāi)發(fā)板、Modem為硬件平臺(tái),通過(guò)Altera的FPGA實(shí)現(xiàn)硬件電路模塊,主要需要實(shí)現(xiàn)的電路模塊有A/D采樣控制邏輯模塊、圖像二值化處理模塊、MH[3]編碼模塊、MH譯碼模塊、掃描、打印、電機(jī)時(shí)序驅(qū)動(dòng)邏輯模塊。
    (1)A/D采樣控制邏輯模塊
    通過(guò)CIS掃描器件把原稿的光信號(hào)轉(zhuǎn)化為電信號(hào),將CIS掃描器件獲得的模擬電信號(hào)通過(guò)A/D轉(zhuǎn)換器件轉(zhuǎn)化為8 bit的數(shù)字信號(hào)輸入圖像處理二值化模塊。A/D采樣控制邏輯完成A/D器件的時(shí)序驅(qū)動(dòng)。
    (2)圖像二值化處理模塊
    本模塊輸入數(shù)據(jù)為A/D轉(zhuǎn)化后的每像素8 bit數(shù)據(jù),根據(jù)掃描原有文本、灰度圖像、圖文并茂3種類型自動(dòng)判別選用不同的算法,進(jìn)行偽灰度處理,即根據(jù)抖動(dòng)表(Dither)進(jìn)行二值化處理,得到人眼感覺(jué)有層次(灰度變化)的二值圖像,即半色調(diào)圖像(Halftone)?;叶戎祱D像轉(zhuǎn)化為二值圖像的算法原理是:通過(guò)實(shí)際的中間色調(diào)信號(hào)與存儲(chǔ)在ROM中的閾值信號(hào)比較形成二值圖像信號(hào)。


    一般傳真機(jī)采用的抖動(dòng)表數(shù)據(jù)是8×8的Bayes矩陣,在實(shí)驗(yàn)中采用該方法處理得到的效果并不理想,圖像對(duì)比度不是很強(qiáng)烈,整體效果較暗。因此作者根據(jù)FPGA硬件處理的特性,采用16×16的抖動(dòng)矩陣對(duì)傳真圖像進(jìn)行處理。采用該方法適應(yīng)了FPGA 芯片擁有豐富寄存器資源的特點(diǎn),用來(lái)存儲(chǔ)改進(jìn)抖動(dòng)表,在不影響處理速度的情況下,明顯改進(jìn)圖像的處理效果,提高圖像對(duì)比度,圖像效果比較接近原圖。從得出的效果圖可以明顯看出,改進(jìn)方案比原有Bayer抖動(dòng)表做抖動(dòng)的圖像對(duì)比度要好得多,代價(jià)為增加了一千多位寄存器。從而較好地解決了對(duì)圖像二值化處理中對(duì)比度不強(qiáng)的問(wèn)題。
    (3)編碼模塊
    將二值化后的圖像數(shù)據(jù)經(jīng)一維MH編碼后交付通信模塊使用。MH編碼是一維改進(jìn)的Huffman編碼,是ITU-T T.4[4]標(biāo)準(zhǔn)中的一部分,ITU-T T.4標(biāo)準(zhǔn)的全稱是三類傳真機(jī)終端文檔傳輸標(biāo)準(zhǔn)。MH編碼具有效率高、容易擴(kuò)展等特點(diǎn)。三類傳真機(jī)一般都實(shí)現(xiàn)了一維MH編碼和譯碼,有的也實(shí)現(xiàn)了二維MR編碼,本文用硬件電路實(shí)現(xiàn)一維MH編碼。對(duì)于二值信源來(lái)說(shuō),一幅傳真圖像是由掃描線上的像素組成的。而每一掃描線又總是由一些黑像素和白像素組成。將連續(xù)發(fā)生的黑像素為連‘1’,白像素為連‘0’,也稱為黑游程和白游程。連‘1’的個(gè)數(shù)稱為黑游程的長(zhǎng)度,連‘0’的個(gè)數(shù)稱為白游程的長(zhǎng)度。黑白游程交替出現(xiàn)。針對(duì)游程編碼,哈夫曼MH碼元很好地解決了傳真信源的壓縮問(wèn)題,是T.30協(xié)議中規(guī)定的編碼方式之一。實(shí)現(xiàn)時(shí)通過(guò)讀取像素信息存儲(chǔ)FIFO判斷是黑游程還是白游程。當(dāng)發(fā)生了黑白游程切換時(shí),根據(jù)黑白游程計(jì)數(shù)形成碼表訪問(wèn)地址,根據(jù)地址查找碼表得到對(duì)應(yīng)的編碼碼元。MHC編碼硬件模塊圖如圖3所示。

    該編碼數(shù)據(jù)將封裝在T30協(xié)議中進(jìn)行傳輸,T30協(xié)議規(guī)定的每樣張的數(shù)據(jù)傳輸格式如圖4所示。其中EOL為End Of Line,即行同步碼,格式為000000000001。同步碼是緊跟在每一行掃描線之后的特殊碼字,它在有效數(shù)據(jù)中不可能出現(xiàn),因而在突發(fā)錯(cuò)誤之后能重新建立同步。特殊地,每頁(yè)文件的第一個(gè)數(shù)據(jù)之前也設(shè)置一個(gè)EOL。


    填充碼fill的作用是保證每掃描線,即每一行的數(shù)據(jù)傳輸時(shí)間不小于某一規(guī)定時(shí)間T,T為發(fā)送一行編碼數(shù)據(jù)所用的最小時(shí)間,ITU-T T.4標(biāo)準(zhǔn)建議中規(guī)定T=20 ms,不足20 ms時(shí)間應(yīng)加入填充碼,其格式為長(zhǎng)度不一的全“0”串。RTC為返回控制碼,其格式為6個(gè)連發(fā)的EOL碼,表示一頁(yè)文件碼的傳輸結(jié)束。
    在通過(guò)Internet進(jìn)行傳真時(shí)需要將MH編碼數(shù)據(jù)封裝在TIFF文件中,封裝成TIFF文件的過(guò)程通過(guò)軟件模塊實(shí)現(xiàn)。
    (4)譯碼模塊
    基于FPGA硬件電路實(shí)現(xiàn)圖像MH譯碼模塊,采用快速譯碼策略。在譯碼時(shí),由于碼元不等長(zhǎng)且數(shù)據(jù)量較大,構(gòu)造譯碼樹較困難,應(yīng)采用快速譯碼方法??焖僮g碼算法的基本思想是采取多步合一的方法,一次輸入的不是一個(gè)碼元,而是多個(gè)碼元。根據(jù)碼表的特點(diǎn)可知,白游程最短碼長(zhǎng)是4,黑游程最短碼長(zhǎng)是2。由此在譯碼開(kāi)始時(shí),碼元是以穿行的方式進(jìn)入譯碼電路,對(duì)白游程可以直接讀取4 bit,進(jìn)入譯碼查找,若非完整編碼再逐位讀取;對(duì)黑游程可以直接讀取2 bit,進(jìn)入譯碼查找,若非完整編碼再逐位讀取。譯碼的具體算法如下:
    ①按游程類型讀取對(duì)應(yīng)最小編碼長(zhǎng)度編碼;
    ②在形成碼中進(jìn)行匹配,若成功,按游程類型繼續(xù)讀取對(duì)應(yīng)最小編碼長(zhǎng)度編碼,轉(zhuǎn)入③;否則轉(zhuǎn)入④;
    ③終結(jié)碼中匹配,失敗則讀取下一位繼續(xù)匹配,直至成功;
    ④在終結(jié)碼中進(jìn)行匹配,匹配成功則跳入①重新開(kāi)始;否則讀取下一位編碼,轉(zhuǎn)入②。重復(fù)以上操作,直到本行結(jié)束;
    (5)掃描、打印、電機(jī)驅(qū)動(dòng)邏輯。
    本硬件模塊采用FPGA實(shí)現(xiàn),主要提供CIS掃描器件、TPH打印器件、電機(jī)的驅(qū)動(dòng)時(shí)序信號(hào)。
2.2 雙網(wǎng)數(shù)字傳真機(jī)軟件設(shè)計(jì)
    操作系統(tǒng)采用實(shí)時(shí)操作系統(tǒng)內(nèi)核?滋C/OS-II,硬件抽象層HAL[5]由Nios II開(kāi)發(fā)工具生成,TCP/IP協(xié)議棧使用移植到μC/OS-II上的Niche TCP/IP協(xié)議棧。Altera EP1C20開(kāi)發(fā)板含有SMSC LAN91C111-NE MAC/PHY芯片,該芯片完成網(wǎng)絡(luò)中MAC/PHY功能。軟件主要完成系統(tǒng)控制和T30協(xié)議通信過(guò)程、非實(shí)時(shí)傳真通信過(guò)程、Tiff[6]文件創(chuàng)建、Tiff文件解析。由于μC/OS-II是多任務(wù)的實(shí)時(shí)內(nèi)核,故系統(tǒng)劃分和設(shè)計(jì)了以下任務(wù):
    (1)Init任務(wù):初始化任務(wù),建立任務(wù)之間的通信量。
    (2)TCP/IP協(xié)議棧任務(wù):Inet_main任務(wù),該任務(wù)負(fù)責(zé)TCP/IP協(xié)議的運(yùn)行。
    (3)clock tick任務(wù):系統(tǒng)ticks任務(wù)。
    (4)T30發(fā)送任務(wù):實(shí)現(xiàn)發(fā)送一封傳真的T30通信過(guò)程。
    (5)T30接收任務(wù):實(shí)現(xiàn)接收一封傳真的T30通信過(guò)程。
    (6)SMTP發(fā)送任務(wù):通過(guò)SMTP命令EHLO、AUTH、RCPT、MAIL、DATA、QUIT和傳真服務(wù)器進(jìn)行對(duì)話,基于SMTP協(xié)議實(shí)現(xiàn)非實(shí)時(shí)傳真通信協(xié)議,即按照服務(wù)器接收的發(fā)送傳真格式發(fā)送一封特殊郵件到服務(wù)器。其中傳真數(shù)據(jù)文件以附件的方式附在這封有固定格式和含義的郵件中,圖像數(shù)據(jù)需要封裝成Tiff文件的形式,附件發(fā)送時(shí)需要按照SMTP協(xié)議將數(shù)據(jù)重新編碼為base64格式的編碼數(shù)據(jù)才能進(jìn)行發(fā)送。該封郵件內(nèi)容固定格式中含有賬號(hào)密碼、發(fā)送參數(shù)、發(fā)往目標(biāo)號(hào)碼列表信息等內(nèi)容,是非實(shí)時(shí)傳真通信協(xié)議中規(guī)定的內(nèi)容。
    (7)POP3接收任務(wù):通過(guò)POP3命令USER、PASS、STAT、RETR、QUIT實(shí)現(xiàn)與傳真服務(wù)器的對(duì)話,從傳真服務(wù)器收取一封特殊的郵件,該郵件的附件即為傳真圖像數(shù)據(jù)Tiff文件。收取下來(lái)的Tiff文件是base64編碼數(shù)據(jù),首先需要將文件數(shù)據(jù)進(jìn)行base64解碼還原出Tiff文件。
    (8)Tiff文件解碼任務(wù):Tiff文件是標(biāo)簽式文件,按照Tiff文件的格式和對(duì)應(yīng)標(biāo)簽含義解析出Tiff文件的信息和具體的圖像數(shù)據(jù),然后觸發(fā)MH解碼電路模塊工作并驅(qū)動(dòng)電機(jī)和TPH打印模塊打印黑白像素點(diǎn)。
    (9)創(chuàng)建Tiff文件任務(wù):根據(jù)Tiff文件信息標(biāo)簽組建Tiff文件。
    雙網(wǎng)傳真機(jī)系統(tǒng)在Altera Cyclone EP1C20實(shí)驗(yàn)板、外加驅(qū)動(dòng)板、Modem等硬件基礎(chǔ)上開(kāi)發(fā)成功,通過(guò)反復(fù)軟硬件調(diào)試,軟硬件運(yùn)行穩(wěn)定、達(dá)到系統(tǒng)功能指標(biāo)。利用了μC/OS-II能夠穩(wěn)定、安全處理并發(fā)多任務(wù)這一特點(diǎn),軟件模塊穩(wěn)定運(yùn)行,體現(xiàn)出較高的實(shí)時(shí)性和可靠性,取得了較好的實(shí)際效果。本系統(tǒng)可以自己設(shè)計(jì)和生產(chǎn)帶Altera FPGA芯片的實(shí)驗(yàn)板,集成Ethernet MAC/PHY芯片和Modem芯片等,降低系統(tǒng)成本。同時(shí)本系統(tǒng)還可以與PC機(jī)聯(lián)網(wǎng),通過(guò)PC機(jī)向雙網(wǎng)傳真機(jī)發(fā)送文件和接收文件,這樣可以提高工作效率并減少紙張浪費(fèi),適合于公司集團(tuán)用戶作為傳真中轉(zhuǎn)工作機(jī),具有一定的市場(chǎng)應(yīng)用價(jià)值。

參考文獻(xiàn)
[1] ITU-T Recommendation T.30 Procedures for document  facsi-mile transmission in the general switched telephone  network[S].2005.
[2] 李蘭英.Nios II嵌入式軟核SoPC設(shè)計(jì)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[3] 劉立柱.網(wǎng)絡(luò)傳真通信原理與技術(shù)[M].北京:國(guó)防工業(yè)出版社,2006.
[4] ITU-T Recommendation T.4 Standardization of Group 3  facsimile terminals for document transmission[S].2003.
[5] Nios II軟件架構(gòu)解析[M].西安:西安電子科技大學(xué)出版社,2007.
[6] RFC2306-Tag Image File Format(TIFF)-F Profile for Facsimile[S],1998.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。