引言
網(wǎng)絡(luò)傳真機是將待傳真的圖,、文稿件等自動掃描成圖像文件,然后通過網(wǎng)絡(luò)傳真協(xié)議將數(shù)據(jù)文件發(fā)到網(wǎng)絡(luò)傳真服務(wù)器中,,經(jīng)服務(wù)器轉(zhuǎn)發(fā)到目標網(wǎng)絡(luò)傳真機或者普通傳真機的設(shè)備,。傳真圖、文稿件數(shù)據(jù)經(jīng)網(wǎng)絡(luò)傳真機掃描構(gòu)件CIS(Contact Image Sensor)掃描成點陣數(shù)據(jù),,經(jīng)過MH(Modified Huffman)編碼模塊編碼成MH碼字,,最后通過圖像傳輸系統(tǒng)進行傳輸。本文設(shè)計的網(wǎng)絡(luò)傳真圖像傳輸系統(tǒng)可以將傳真數(shù)據(jù)通過Inte-rnet網(wǎng)絡(luò)發(fā)送到目標端,,不但速度快,,而且可以有效地節(jié)省網(wǎng)絡(luò)費用。
1 網(wǎng)絡(luò)傳真機接入網(wǎng)絡(luò)
網(wǎng)絡(luò)傳真機通過圖1所示的方式接入到網(wǎng)絡(luò)中,。網(wǎng)絡(luò)傳真機通過網(wǎng)絡(luò)傳真服務(wù)器進行轉(zhuǎn)發(fā),,通信協(xié)議是非實時傳真標準協(xié)議,根據(jù)目標傳真機是網(wǎng)絡(luò)傳真機還是普通傳真機,,選擇對應(yīng)的Internet網(wǎng)絡(luò),、PSTN網(wǎng)絡(luò)進行推送。接入PSTN網(wǎng)絡(luò)和目標傳真機通過T30協(xié)議進行通信,。通過Internet發(fā)送,,傳輸?shù)臄?shù)據(jù)文件格式是Tiff,,服務(wù)器會判斷該傳真是發(fā)往普通傳真機還是網(wǎng)絡(luò)傳真機,。如果發(fā)往普通傳真機,服務(wù)器會解析Tiff文件并將解析出的傳真編碼數(shù)據(jù)發(fā)往普通傳真機,;如果發(fā)往網(wǎng)絡(luò)傳真機,,則將該Tiff文件放到用戶目錄中,等待網(wǎng)絡(luò)傳真機自動或者手動收取,。
2 網(wǎng)絡(luò)傳真圖像傳輸系統(tǒng)設(shè)計
網(wǎng)絡(luò)圖像傳輸過程如圖2所示,。在發(fā)送網(wǎng)絡(luò)傳真時,傳真數(shù)據(jù)被封裝成Tiff文件進行發(fā)送,。發(fā)送過程是:通過掃描設(shè)備獲得像素點數(shù)據(jù),,經(jīng)MH編碼模塊編碼成MH碼字,由封裝Tiff文件模塊封裝成Tiff文件,,啟動網(wǎng)絡(luò)發(fā)送模塊進行發(fā)送,。接收過程是:通過網(wǎng)絡(luò)接收一個Tiff文件,提取附件并取出Tiff文件進行Tiff文件解析,,然后經(jīng)MH解碼和打印模塊進行MH解碼和發(fā)送打印時序,,最后由TPH(Themal Print Head)打印設(shè)備完成打印輸出。
Tiff文件的構(gòu)造和解析是本系統(tǒng)設(shè)計的難點。Tiff文件是由許多標簽組成的,,分為文件頭和IFD(Image File Header)兩部分,。一個IFD中存儲一幅圖像的信息,IFD可以由許多標簽組成,。一個Tiff文件的格式如圖3所示,。具體的每個標簽的含義參考RFC 2301(File Format for Internet Fax)文檔、Tiff 6.0 Specification文檔,。
3 網(wǎng)絡(luò)傳真圖像傳輸系統(tǒng)軟硬件實現(xiàn)
系統(tǒng)硬件使用Altera Cyclone EPlC20開發(fā)板,,CPU為NiosII。開發(fā)板含有SMSC LAN91C111-NE MAC/PHY芯片,,用于實現(xiàn)網(wǎng)絡(luò)中的MAC/ PHY功能,。操作系統(tǒng)采用μC/OS-II,TCP/IP協(xié)議棧使用移植到μC/OS-II中的Niche TCP/IP協(xié)議棧,。由于μC/OS-II是多任務(wù)實時內(nèi)核,,故圖像傳輸系統(tǒng)設(shè)計了4個任務(wù)(Task)。任務(wù)之間的通信使用消息隊列MailStorageQ,、PrintStorageQ,,如圖4所示。
Create Tiff Task:該任務(wù)負責(zé)創(chuàng)建Tiff文件,,調(diào)用構(gòu)造Tiff文件的函數(shù)創(chuàng)建Tiff文件,,調(diào)用成功后將Tiff文件的首地址通過消息隊列MailStorageQ傳遞給發(fā)送網(wǎng)絡(luò)傳真的任務(wù)SmtpClientTask。
SmtpClientTask:該任務(wù)負責(zé)以SMTP協(xié)議的命令形式與網(wǎng)絡(luò)傳真服務(wù)器進行通信,,命令有EHLO,、AUTH、RCPT,、MAIL,、DATA、QUIT等,。傳真文件以郵件附件的形式進行發(fā)送,。一封待發(fā)送的網(wǎng)絡(luò)傳真格式郵件(簡稱“郵件”)定義如下:郵件頭,接著是一個空行,,然后是郵件體(即正文),,正文之后是附件。郵件頭主要包括Date,、From,、To、Subject,、Message-ID,、Mime-Version、Content-Type等。正文是協(xié)議規(guī)定的標簽:值格式的文本行,,主要包含有賬號密碼,、發(fā)送參數(shù)、發(fā)送目標號碼列表信息等,。附件是傳真數(shù)據(jù)文件(Tiff文件)的base64編碼字符,。正文和附件在郵件中被分為兩個Boundary。
Pop3ClientTask:該任務(wù)負責(zé)以POP3協(xié)議的命令形式與網(wǎng)絡(luò)傳真服務(wù)器進行通信,,進行網(wǎng)絡(luò)傳真的收取,。NetfaxprintTask:該任務(wù)負責(zé)分析郵件,解析郵件頭,,提取出附件(Attachment),,對附件進行base64解碼,然后對Tiff文件進行解析,,定位出MH編碼數(shù)據(jù),,交由MH編碼和打印控制電路進行Tiff文件(傳真)打印。
4 測試與調(diào)試
測試環(huán)境以亞森公司(AsiaTelecom)的網(wǎng)絡(luò)傳真服務(wù)器為傳真服務(wù)器,,Altera Cyclone EP1C20開發(fā)板為網(wǎng)絡(luò)傳真終端,,開發(fā)板連接到Internet。
發(fā)送的Tiff文件(網(wǎng)絡(luò)傳真)樣張如圖5所示,。接收的Tiff文件(網(wǎng)絡(luò)傳真)也可以成功解碼和打印輸出,。
該網(wǎng)絡(luò)傳真圖像傳輸系統(tǒng)成功解決了網(wǎng)絡(luò)傳真的圖像組織與傳輸、解碼以及打印的技術(shù)難題,,對開發(fā)網(wǎng)絡(luò)傳真機具有重要意義,。