蘇桂芝 楊志謙 邵 威 夏 勇
(中國電子科技集團第三十八研究所 合肥 230088)
數(shù)字圖像是由模擬圖像轉(zhuǎn)換而來的一組數(shù)據(jù)矩陣信息[1],可以對其進行特征提取、圖像分析、圖像處理以及圖像識別等工作。在現(xiàn)代化的工業(yè)生產(chǎn)中,正越來越多的使用數(shù)字圖像技術對目標進行檢測、跟蹤和定位,從而大大的提高了工作的效率。一般情況下,數(shù)字圖像通過電纜從采集點傳送到信息處理中心,但是在一些難以使用電纜的場合,如旋轉(zhuǎn)、移動的圖像采集設備或大范圍、遠距離的視頻監(jiān)控系統(tǒng)中,則大多采用無線通信作為有效的傳輸方法[2]。無線通信方式雖然可以不受地形等因素的限制,但極易受到周圍電磁環(huán)境的影響,并且數(shù)字圖像的數(shù)據(jù)量一般都較大,在無線傳輸鏈路中容易產(chǎn)生誤碼和丟幀的現(xiàn)象,使得最終的顯示結果出現(xiàn)較大的失真。HDLC協(xié)議是一種高級數(shù)據(jù)鏈路控制協(xié)議,它具有差錯檢測功能強大、實時和同步傳輸?shù)奶攸c。為了在圖像傳輸過程中降低誤碼率,并且保證其高速性和實時性,本文設計了一種基于HDLC協(xié)議的傳輸鏈路。
通常人眼觀察到,未經(jīng)采樣與量化的圖像稱為模擬圖像,但是計算機無法接受模擬圖像,因而必須對它進行采樣和量化使之轉(zhuǎn)換成為數(shù)字圖像才能被處理,即圖像的數(shù)字化[3]。
取樣是將模擬圖像在空間上離散化,是將一幅連續(xù)圖像在空間上分割成M×N個網(wǎng)格,把取樣網(wǎng)格點上對應的連續(xù)亮度轉(zhuǎn)換為單個特定數(shù)碼的過程,稱之為量化。行數(shù)、列數(shù)和量化等級都取2的整數(shù)次冪,且每級只取整數(shù)值。這樣就形成一個矩陣,其每個元素稱為圖像元素,簡稱象素。象素的值稱為灰度級,通常量化為 256級,用 0、1、2、…、255表示[4]。圖像上每一點的灰度級與其亮度相對應。一般說來,灰度級越大,圖像越亮,顏色越淺,這樣就得到一幅數(shù)字圖像。
在數(shù)字圖像的無線傳輸過程中,數(shù)字圖像采用函數(shù)的形式來表示。黑白圖像可以應用二維函數(shù)f(x,y)表示,x,y是平面的兩個軸的坐標,f(x,y)表示點(x,y)的亮度值(灰度值)。彩色圖像可用f(x,y,λ)表示,λ為波長?;顒硬噬珗D像可用f(x,y,λ,t)表示,λ 為波長,t表示時間。
在準備傳送前,將數(shù)字圖像的象素信息按照八方向鏈表形式進行編碼,形成一組數(shù)據(jù)。正東方向零度為000,逆時針方向依次為001——111。按照后點相對于前點的方向進行編碼,如圖1所示。
圖1 八方向鏈表
HDLC(High Level Data Link Control)協(xié)議是國際標準化組織(ISO)推出的高級數(shù)據(jù)鏈路控制協(xié)議[5]。HDLC是面向位的鏈路控制規(guī)程,在 HDLC協(xié)議中,采用幀結構傳輸數(shù)據(jù),用一幀表示一組完整的信息,如圖2所示,它既可以用于通信的控制,也可以用于數(shù)據(jù)的傳輸。
HDLC協(xié)議規(guī)定,所有信息的傳輸必須以個標志字開始,且以同一個標志字結束,這個標志字就是0x7E。接收方可以通過搜索0x7E來判斷幀的開始和結束,以此建立幀同步[6]。地址字段表示鏈路上站的地址,控制字段實現(xiàn)了HDLC的許多重要功能,根據(jù)其最前面兩個位的取值,可將HDLC幀劃分為:信息幀(I)、監(jiān)督幀(S)和無編號幀(U)。信息字段為所要傳輸?shù)臄?shù)據(jù)。幀校驗采用循環(huán)冗余校驗碼CRC[7],對地址、控制和信息字段進行校驗,插入的“0”不在校驗范圍。16位幀校驗序列碼多項式為:
32位幀校驗序列碼多項式為:
HDLC協(xié)議包含幀發(fā)送控制和幀接收控制,因確定0x7E(01111110)為控制字符時,傳輸?shù)膸谋忍匦蛄兄芯筒荒艹霈F(xiàn)與它相同的比特序列,否則就會出現(xiàn)判斷的錯誤。這也就是幀數(shù)據(jù)傳輸?shù)耐该餍詥栴}。同樣,在兩個01111110的標志字段之間的比特序列中,如果出現(xiàn)了和標志字段一樣的比特組合,那么就會誤認為是幀的邊界。為了避免出現(xiàn)這種錯誤,HDLC規(guī)定采用插零/刪零的方法。
圖2 HDLC幀結構
插零/刪零的方法規(guī)定:發(fā)送端在兩個標志字段之間的比特序列中,如果檢查出連續(xù)的5個1,不管它后面的比特位是0或1,都增加一個0;那么在接收過程中,在2個標志字段之間的比特序列中檢查出連續(xù)的5個1之后就刪除一個0。在數(shù)據(jù)發(fā)送端,經(jīng)過0比特插入后的數(shù)據(jù)就可以保證不會出現(xiàn)6個連續(xù)1。在接收一個幀時,首先找到標志字段以確定幀的邊界,接著再對其中的比特序列進行檢查,每當發(fā)現(xiàn)5個連續(xù)1時,就將這五個連續(xù)1后的一個0刪除,以便將數(shù)據(jù)還原成原來的比特。這樣就保證了在所傳送的比特序列中,不管出現(xiàn)什么樣的比特組合,也不至于引起幀邊界的判斷錯誤。采用插零/刪零的方法后,幀內(nèi)就可以傳送任意組合的比特序列,即可以實現(xiàn)數(shù)據(jù)鏈路層的透明傳輸。具體發(fā)送接收流程如圖3所示。
圖3 傳輸鏈路流程
將HDLC協(xié)議用于無線的數(shù)字圖像傳輸,一方面要保證數(shù)據(jù)的同步通訊,另一方面要實現(xiàn)數(shù)據(jù)的透明傳輸。
圖像數(shù)據(jù)信息經(jīng)過數(shù)據(jù)總線和地址總線不斷的從CPU傳送至FPGA,由FPGA將大量的數(shù)據(jù)按照HDLC協(xié)議的格式進行打包,發(fā)送出去[8]。為了保證數(shù)據(jù)傳輸?shù)耐叫裕诎l(fā)送數(shù)據(jù)的同時,提供數(shù)據(jù)的同步時鐘,且時鐘的連續(xù)性和時鐘頻率是可控的,在接收數(shù)據(jù)時就可以通過同步時鐘來判斷數(shù)據(jù)流的標志位,實現(xiàn)幀同步。FPGA內(nèi)部的HDLC協(xié)議處理流程如圖4所示。
圖4 HDLC協(xié)議處理流程
HDLC的幀同步方式利用“0比特插入法”對數(shù)據(jù)實現(xiàn)透明傳輸,傳輸信息的比特組合無任何限制。在發(fā)送端和接收端相應地進行“插零”及“刪零”操作。這樣使得HDLC具有良好的透明傳輸特性。
實現(xiàn)“插零”和“刪零”操作的部分源代碼如下:
通過示波器觀察發(fā)送出來的數(shù)據(jù),波形如圖5。
圖5 HDLC數(shù)據(jù)與時鐘
首先對設計的HDLC鏈路進行仿真測試,采用無線電臺發(fā)送一組0~255連續(xù)有序數(shù)據(jù),在接收端CPCI計算機接收數(shù)據(jù)并存文件,將發(fā)送端的數(shù)據(jù)與接收到的數(shù)據(jù)加以比較,以測試整個鏈路的有效性。
采用MATLAB進行數(shù)據(jù)分析,由圖6可看出,收到數(shù)據(jù)和發(fā)出數(shù)據(jù)完全重合,證明該鏈路是有效的。
圖6 模擬傳輸測試圖
當仿真測試完全正確后,還需對真實的圖像數(shù)據(jù)進行傳輸測試,為了證明HDLC協(xié)議的有效性,分別采用普通方法傳輸和本文設計的鏈路進行無線傳輸,并對發(fā)送和接收到的數(shù)據(jù)進行比較,如圖7、圖8所示。
圖7 實際圖像傳輸比較(普通)
分析圖7和圖8,可以看出,在普通方式下傳輸圖像數(shù)據(jù),收到的數(shù)據(jù)和實際發(fā)送的數(shù)據(jù)存在明顯的差別,即誤碼較多,而運用HDLC協(xié)議的傳輸鏈路收到的數(shù)據(jù)和實際傳輸?shù)臄?shù)據(jù)完全吻合,大大的降低了傳輸?shù)恼`碼率,滿足數(shù)字圖像數(shù)據(jù)的無線傳輸要求。
圖8 實際圖像傳輸比較(HDLC)
數(shù)字圖象傳輸具有數(shù)據(jù)量大、實時性要求高的特點。本文將HDLC協(xié)議應用在數(shù)字圖像的無線傳輸中,實驗結果表明,本方法是可行、有效的,并且相比普通的無線傳輸,其誤碼率較低,傳輸過程穩(wěn)定、可靠。
[1] 沈蘭蓀.圖象編碼與異步傳輸[M].北京:人民郵電出版社,1998.
[2]申長軍,吳慶宏.低功耗無線數(shù)字傳輸塊的設計與應用[J].電子技術應用,2004(9).
[3] 楊新偉,計欣華,陳金龍.三維白光數(shù)字圖象頻域分析法及其應用[J].機械強度,2009(04).
[4] 王劍.基于MATLAB的小波變換在圖象壓縮中的應用[J].計算機工程與應用,2003,(01).
[5]CHEN He,HAN Yue qiu.ASIC Design of High-Speed Low-Power HDLC Controller[J].JournalofBeijing Institute ofTechnology,2003,vol.12.
[6] 文冠果.一種新型的128路多通道HDLC引擎設計[J].微電子學與計算機,2004,21,(9).
[7] 石建平,黃鄉(xiāng)生.基于FPGA的循環(huán)冗余校驗算法實現(xiàn)[J].信息與電子工程,2008,6,(5).
[8] 談國文,張煒,朱丹,顧英.基于HDLC協(xié)議的實時通信軟件的設計與實現(xiàn)[J].計算機工程與科學,2000,(04).