蘇桂芝 楊志謙 邵 威 夏 勇
(中國電子科技集團(tuán)第三十八研究所 合肥 230088)
數(shù)字圖像是由模擬圖像轉(zhuǎn)換而來的一組數(shù)據(jù)矩陣信息[1],可以對其進(jìn)行特征提取、圖像分析、圖像處理以及圖像識別等工作。在現(xiàn)代化的工業(yè)生產(chǎn)中,正越來越多的使用數(shù)字圖像技術(shù)對目標(biāo)進(jìn)行檢測、跟蹤和定位,從而大大的提高了工作的效率。一般情況下,數(shù)字圖像通過電纜從采集點(diǎn)傳送到信息處理中心,但是在一些難以使用電纜的場合,如旋轉(zhuǎn)、移動的圖像采集設(shè)備或大范圍、遠(yuǎn)距離的視頻監(jiān)控系統(tǒng)中,則大多采用無線通信作為有效的傳輸方法[2]。無線通信方式雖然可以不受地形等因素的限制,但極易受到周圍電磁環(huán)境的影響,并且數(shù)字圖像的數(shù)據(jù)量一般都較大,在無線傳輸鏈路中容易產(chǎn)生誤碼和丟幀的現(xiàn)象,使得最終的顯示結(jié)果出現(xiàn)較大的失真。HDLC協(xié)議是一種高級數(shù)據(jù)鏈路控制協(xié)議,它具有差錯檢測功能強(qiáng)大、實(shí)時(shí)和同步傳輸?shù)奶攸c(diǎn)。為了在圖像傳輸過程中降低誤碼率,并且保證其高速性和實(shí)時(shí)性,本文設(shè)計(jì)了一種基于HDLC協(xié)議的傳輸鏈路。
通常人眼觀察到,未經(jīng)采樣與量化的圖像稱為模擬圖像,但是計(jì)算機(jī)無法接受模擬圖像,因而必須對它進(jìn)行采樣和量化使之轉(zhuǎn)換成為數(shù)字圖像才能被處理,即圖像的數(shù)字化[3]。
取樣是將模擬圖像在空間上離散化,是將一幅連續(xù)圖像在空間上分割成M×N個網(wǎng)格,把取樣網(wǎng)格點(diǎn)上對應(yīng)的連續(xù)亮度轉(zhuǎn)換為單個特定數(shù)碼的過程,稱之為量化。行數(shù)、列數(shù)和量化等級都取2的整數(shù)次冪,且每級只取整數(shù)值。這樣就形成一個矩陣,其每個元素稱為圖像元素,簡稱象素。象素的值稱為灰度級,通常量化為 256級,用 0、1、2、…、255表示[4]。圖像上每一點(diǎn)的灰度級與其亮度相對應(yīng)。一般說來,灰度級越大,圖像越亮,顏色越淺,這樣就得到一幅數(shù)字圖像。
在數(shù)字圖像的無線傳輸過程中,數(shù)字圖像采用函數(shù)的形式來表示。黑白圖像可以應(yīng)用二維函數(shù)f(x,y)表示,x,y是平面的兩個軸的坐標(biāo),f(x,y)表示點(diǎn)(x,y)的亮度值(灰度值)。彩色圖像可用f(x,y,λ)表示,λ為波長。活動彩色圖像可用f(x,y,λ,t)表示,λ 為波長,t表示時(shí)間。
在準(zhǔn)備傳送前,將數(shù)字圖像的象素信息按照八方向鏈表形式進(jìn)行編碼,形成一組數(shù)據(jù)。正東方向零度為000,逆時(shí)針方向依次為001——111。按照后點(diǎn)相對于前點(diǎn)的方向進(jìn)行編碼,如圖1所示。

圖1 八方向鏈表
HDLC(High Level Data Link Control)協(xié)議是國際標(biāo)準(zhǔn)化組織(ISO)推出的高級數(shù)據(jù)鏈路控制協(xié)議[5]。HDLC是面向位的鏈路控制規(guī)程,在 HDLC協(xié)議中,采用幀結(jié)構(gòu)傳輸數(shù)據(jù),用一幀表示一組完整的信息,如圖2所示,它既可以用于通信的控制,也可以用于數(shù)據(jù)的傳輸。
HDLC協(xié)議規(guī)定,所有信息的傳輸必須以個標(biāo)志字開始,且以同一個標(biāo)志字結(jié)束,這個標(biāo)志字就是0x7E。接收方可以通過搜索0x7E來判斷幀的開始和結(jié)束,以此建立幀同步[6]。地址字段表示鏈路上站的地址,控制字段實(shí)現(xiàn)了HDLC的許多重要功能,根據(jù)其最前面兩個位的取值,可將HDLC幀劃分為:信息幀(I)、監(jiān)督幀(S)和無編號幀(U)。信息字段為所要傳輸?shù)臄?shù)據(jù)。幀校驗(yàn)采用循環(huán)冗余校驗(yàn)碼CRC[7],對地址、控制和信息字段進(jìn)行校驗(yàn),插入的“0”不在校驗(yàn)范圍。16位幀校驗(yàn)序列碼多項(xiàng)式為:

32位幀校驗(yàn)序列碼多項(xiàng)式為:

HDLC協(xié)議包含幀發(fā)送控制和幀接收控制,因確定0x7E(01111110)為控制字符時(shí),傳輸?shù)膸谋忍匦蛄兄芯筒荒艹霈F(xiàn)與它相同的比特序列,否則就會出現(xiàn)判斷的錯誤。這也就是幀數(shù)據(jù)傳輸?shù)耐该餍詥栴}。同樣,在兩個01111110的標(biāo)志字段之間的比特序列中,如果出現(xiàn)了和標(biāo)志字段一樣的比特組合,那么就會誤認(rèn)為是幀的邊界。為了避免出現(xiàn)這種錯誤,HDLC規(guī)定采用插零/刪零的方法。

圖2 HDLC幀結(jié)構(gòu)
插零/刪零的方法規(guī)定:發(fā)送端在兩個標(biāo)志字段之間的比特序列中,如果檢查出連續(xù)的5個1,不管它后面的比特位是0或1,都增加一個0;那么在接收過程中,在2個標(biāo)志字段之間的比特序列中檢查出連續(xù)的5個1之后就刪除一個0。在數(shù)據(jù)發(fā)送端,經(jīng)過0比特插入后的數(shù)據(jù)就可以保證不會出現(xiàn)6個連續(xù)1。在接收一個幀時(shí),首先找到標(biāo)志字段以確定幀的邊界,接著再對其中的比特序列進(jìn)行檢查,每當(dāng)發(fā)現(xiàn)5個連續(xù)1時(shí),就將這五個連續(xù)1后的一個0刪除,以便將數(shù)據(jù)還原成原來的比特。這樣就保證了在所傳送的比特序列中,不管出現(xiàn)什么樣的比特組合,也不至于引起幀邊界的判斷錯誤。采用插零/刪零的方法后,幀內(nèi)就可以傳送任意組合的比特序列,即可以實(shí)現(xiàn)數(shù)據(jù)鏈路層的透明傳輸。具體發(fā)送接收流程如圖3所示。

圖3 傳輸鏈路流程
將HDLC協(xié)議用于無線的數(shù)字圖像傳輸,一方面要保證數(shù)據(jù)的同步通訊,另一方面要實(shí)現(xiàn)數(shù)據(jù)的透明傳輸。
圖像數(shù)據(jù)信息經(jīng)過數(shù)據(jù)總線和地址總線不斷的從CPU傳送至FPGA,由FPGA將大量的數(shù)據(jù)按照HDLC協(xié)議的格式進(jìn)行打包,發(fā)送出去[8]。為了保證數(shù)據(jù)傳輸?shù)耐叫?,在發(fā)送數(shù)據(jù)的同時(shí),提供數(shù)據(jù)的同步時(shí)鐘,且時(shí)鐘的連續(xù)性和時(shí)鐘頻率是可控的,在接收數(shù)據(jù)時(shí)就可以通過同步時(shí)鐘來判斷數(shù)據(jù)流的標(biāo)志位,實(shí)現(xiàn)幀同步。FPGA內(nèi)部的HDLC協(xié)議處理流程如圖4所示。

圖4 HDLC協(xié)議處理流程
HDLC的幀同步方式利用“0比特插入法”對數(shù)據(jù)實(shí)現(xiàn)透明傳輸,傳輸信息的比特組合無任何限制。在發(fā)送端和接收端相應(yīng)地進(jìn)行“插零”及“刪零”操作。這樣使得HDLC具有良好的透明傳輸特性。
實(shí)現(xiàn)“插零”和“刪零”操作的部分源代碼如下:

通過示波器觀察發(fā)送出來的數(shù)據(jù),波形如圖5。

圖5 HDLC數(shù)據(jù)與時(shí)鐘
首先對設(shè)計(jì)的HDLC鏈路進(jìn)行仿真測試,采用無線電臺發(fā)送一組0~255連續(xù)有序數(shù)據(jù),在接收端CPCI計(jì)算機(jī)接收數(shù)據(jù)并存文件,將發(fā)送端的數(shù)據(jù)與接收到的數(shù)據(jù)加以比較,以測試整個鏈路的有效性。
采用MATLAB進(jìn)行數(shù)據(jù)分析,由圖6可看出,收到數(shù)據(jù)和發(fā)出數(shù)據(jù)完全重合,證明該鏈路是有效的。

圖6 模擬傳輸測試圖
當(dāng)仿真測試完全正確后,還需對真實(shí)的圖像數(shù)據(jù)進(jìn)行傳輸測試,為了證明HDLC協(xié)議的有效性,分別采用普通方法傳輸和本文設(shè)計(jì)的鏈路進(jìn)行無線傳輸,并對發(fā)送和接收到的數(shù)據(jù)進(jìn)行比較,如圖7、圖8所示。

圖7 實(shí)際圖像傳輸比較(普通)
分析圖7和圖8,可以看出,在普通方式下傳輸圖像數(shù)據(jù),收到的數(shù)據(jù)和實(shí)際發(fā)送的數(shù)據(jù)存在明顯的差別,即誤碼較多,而運(yùn)用HDLC協(xié)議的傳輸鏈路收到的數(shù)據(jù)和實(shí)際傳輸?shù)臄?shù)據(jù)完全吻合,大大的降低了傳輸?shù)恼`碼率,滿足數(shù)字圖像數(shù)據(jù)的無線傳輸要求。

圖8 實(shí)際圖像傳輸比較(HDLC)
數(shù)字圖象傳輸具有數(shù)據(jù)量大、實(shí)時(shí)性要求高的特點(diǎn)。本文將HDLC協(xié)議應(yīng)用在數(shù)字圖像的無線傳輸中,實(shí)驗(yàn)結(jié)果表明,本方法是可行、有效的,并且相比普通的無線傳輸,其誤碼率較低,傳輸過程穩(wěn)定、可靠。
[1] 沈蘭蓀.圖象編碼與異步傳輸[M].北京:人民郵電出版社,1998.
[2]申長軍,吳慶宏.低功耗無線數(shù)字傳輸塊的設(shè)計(jì)與應(yīng)用[J].電子技術(shù)應(yīng)用,2004(9).
[3] 楊新偉,計(jì)欣華,陳金龍.三維白光數(shù)字圖象頻域分析法及其應(yīng)用[J].機(jī)械強(qiáng)度,2009(04).
[4] 王劍.基于MATLAB的小波變換在圖象壓縮中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,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引擎設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2004,21,(9).
[7] 石建平,黃鄉(xiāng)生.基于FPGA的循環(huán)冗余校驗(yàn)算法實(shí)現(xiàn)[J].信息與電子工程,2008,6,(5).
[8] 談國文,張煒,朱丹,顧英.基于HDLC協(xié)議的實(shí)時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2000,(04).