《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于S3C4510B的HDLC協(xié)議實現(xiàn)
基于S3C4510B的HDLC協(xié)議實現(xiàn)
陳雪良1, 夏 冬2, 許川佩2
摘要: 使用嵌入式微處理器S3C4510B內(nèi)部包含的HDLC控制器封裝和解析HDLC協(xié)議,微處理器既可實現(xiàn)系統(tǒng)功能,又可完成HDLC協(xié)議的數(shù)據(jù)傳輸,降低了設(shè)計的復(fù)雜度。本設(shè)計已應(yīng)用于微波網(wǎng)絡(luò)管理系統(tǒng)中,該系統(tǒng)可以通過RS-232接口或RS-485接口遵循HDLC協(xié)議完成網(wǎng)管數(shù)據(jù)傳輸。經(jīng)驗證,HDLC協(xié)議傳輸正確、可靠,達到設(shè)計要求。
Abstract:
Key words :

  摘 要:使用嵌入式微處理器S3C4510B內(nèi)部包含的HDLC控制器封裝和解析HDLC協(xié)議,微處理器既可實現(xiàn)系統(tǒng)功能,又可完成HDLC協(xié)議的數(shù)據(jù)傳輸,降低了設(shè)計的復(fù)雜度。本設(shè)計已應(yīng)用于微波網(wǎng)絡(luò)管理系統(tǒng)中,該系統(tǒng)可以通過RS-232接口或RS-485接口遵循HDLC協(xié)議完成網(wǎng)管數(shù)據(jù)傳輸。經(jīng)驗證,HDLC協(xié)議傳輸正確、可靠,達到設(shè)計要求。
  關(guān)鍵詞:S3C4510B;HDLC協(xié)議;數(shù)據(jù)傳輸

   傳統(tǒng)的HDLC協(xié)議采用專用芯片或軟件編程等方法實現(xiàn)。專用芯片針對性強、性能可靠,但靈活性差,尤其是片內(nèi)數(shù)據(jù)存儲器容量有限,當(dāng)需要擴大數(shù)據(jù)緩存的容量時,芯片要外接存儲器或其他電路,這就增加了系統(tǒng)成本。軟件編程方法靈活,但占用處理器資源多,執(zhí)行速度慢,實時性不易預(yù)測,一般只能用于個別路數(shù)的低速信號處理。采用ASIC芯片設(shè)計成本過于昂貴。考慮到HDLC協(xié)議的應(yīng)用多和系統(tǒng)其他功能有機結(jié)合,而在很多應(yīng)用系統(tǒng)中均采用嵌入式設(shè)計技術(shù)實現(xiàn)[1]。選用嵌入式微處理器S3C4510B設(shè)計微波網(wǎng)絡(luò)管理系統(tǒng)控制器,實現(xiàn)數(shù)據(jù)的采集、控制、存儲與傳輸,利用S3C4510B內(nèi)嵌的HDLC控制器完成HDLC傳輸數(shù)據(jù)的封裝與解析,系統(tǒng)設(shè)計簡單、實用[2]。
1 HDLC簡介
  HDLC 是一個在同步網(wǎng)上傳輸數(shù)據(jù)并面向位的高級數(shù)據(jù)鏈路層協(xié)議, 由國際標準化組織ISO制定,具有透明傳輸、可靠性高、傳輸速率高以及靈活性高等特點。它采用點對點或多點( 多路播送或一對多) 連接的主/從結(jié)構(gòu), 要求每個從站都有唯一的地址, 從站只有在允許通信時才能且只能和主站通信, 這就消除了串行線路上由于幾個從站同時發(fā)送引起沖突的可能性。由于HDLC 面向位的特性, 因而可以實現(xiàn)不限制編碼的、高可靠和高效率的透明數(shù)據(jù)傳輸。隨著通信的發(fā)展, HDLC 得到日益廣泛的應(yīng)用, 同時, 它還是許多重要的數(shù)據(jù)鏈路層協(xié)議的基礎(chǔ)。HDLC 幀結(jié)構(gòu)如表1所示。

 

 

  表1所列HDLC幀結(jié)構(gòu)中各部分功能為:
  標志位: Flag (F), 每個HDLC 幀以8 位序列( 01111110) 標志幀的開始和結(jié)束, 這是HDLC中僅有的2個包含連續(xù)6個1 的可能組合。為了避免在其他域中出現(xiàn)這種組合, HDLC 采用“零比特插入法”, 即每發(fā)現(xiàn)有接連5個1 時便在下一位自動插入一個0, 接收器在收到連續(xù)5個1 之后又自動刪去插入的0。標志位除了標志幀的開始和結(jié)束外, 還可用作時鐘同步, 接收設(shè)備不斷地搜尋標志位, 以實現(xiàn)幀同步, 從而保證接收部分對后續(xù)字段的正確識別。另外, 在幀與幀的空載期間, 可以連續(xù)發(fā)送這種標志序列, 用作時間填充。
  地址域:Address (A) Field,命令幀或響應(yīng)幀的地址。每個從站必須有唯一的地址, 主站必須知道每個從站的指定地址。全“1”構(gòu)成的地址在HDLC中定義為廣播地址;全“0”構(gòu)成的地址在HDLC中定義為無站地址, 用于測試數(shù)據(jù)鏈路的狀態(tài)。
  控制域:Control (C) Field, 用于確定待傳送幀的類型,并攜帶有關(guān)幀的順序、載波控制和輪詢信息。HDLC有3種類型的幀,分別為信息幀、監(jiān)控幀和無編號幀。三者都符合幀結(jié)構(gòu),幀的格式不一樣,幀的用途也不一樣。
  信息域:Information (I) Field,要傳送的數(shù)據(jù),長度可變,是幀的數(shù)據(jù)部分,字段通常取8位的整數(shù)倍。
  校驗域:Frame Check Sequence (FCS) Field,采用16位循環(huán)冗余校驗碼進行差錯控制,其生成的多項式為G(X)=X16+X12+X5+1。幀校驗序列用于對幀進行循環(huán)冗余校驗, 其校驗范圍從地址字段的第一比特到信息字段的最后一比特的序列, 并且規(guī)定為了透明傳輸而插入的“0”不在校驗范圍內(nèi)。
2 HDLC協(xié)議實現(xiàn)[3-5]
2.1 S3C4510B HDLC 控制器結(jié)構(gòu)
  微波網(wǎng)管系統(tǒng)控制器采用嵌入式設(shè)計方法,系統(tǒng)CPU選用三星公司生產(chǎn)的S3C4510B。S3C4510B具有HDLC模塊,能夠完成HDLC協(xié)議的幀同步、比特填充、FCS的產(chǎn)生和檢測等,可以利用硬件實現(xiàn)HDLC協(xié)議的數(shù)據(jù)處理。
S3C4510B是含有雙通道的HDLC控制器,支持符合SDLC 標準和HDLC 標準的CPU/數(shù)據(jù)通道接口, 包含2 個DMA 引擎,支持使用對應(yīng)幀的緩沖區(qū)描述符結(jié)構(gòu),可以靈活地配置通道物理編碼模式(NRZ、FM、MAN), 選擇本地或者外部時鐘; 支持通過鎖相環(huán)路從接收數(shù)據(jù)流提取時鐘信號。S3C4510B的HDLC通道具有以下特點:
  (1)HDLC協(xié)議特征:標準檢測與同步、零插入與刪除、空閑檢測與發(fā)送、FCS生成和檢測(16位)、終止檢測與發(fā)送;
  (2)FIFO:發(fā)送和接收模塊都有8 B FIFO,提供CPU內(nèi)部總線到HDLC串行接口之間的數(shù)據(jù)緩存;
  (3)DMA:HDLC通道的發(fā)送和接收支持DMA方式;
  (4)波特率生成器:HDLC通道包含一個可編程的波特率產(chǎn)生計數(shù)器,能夠產(chǎn)生各種波特率的傳輸速率;
  (5)PLL模塊:HDLC通道包含一個數(shù)字鎖相環(huán),提供了時鐘恢復(fù)功能,可從編碼后的數(shù)據(jù)流中迅速提取出時鐘信息。
  S3C4510B的HDLC 控制器功能結(jié)構(gòu)如圖1所示。

 

  HDLC 控制器功能結(jié)構(gòu)主要包括總線仲裁單元、DMA 控制器、8 B的發(fā)送/接收( Tx/Rx) FIFO、狀態(tài)/控制寄存器和物理收發(fā)器??偩€仲裁單元負責(zé)向CPU 申請系統(tǒng)總線,DMA 控制器使用緩沖描述符在無CPU 干預(yù)下控制數(shù)據(jù)幀的收發(fā),8 B的FIFO 結(jié)構(gòu)對CPU 和串行接口的數(shù)據(jù)進行立即存儲,物理收發(fā)器控制HDLC 通道的運行模式、編解碼等,狀態(tài)/控制寄存器是運行的核心, 程序設(shè)計人員通過設(shè)置來檢測這些寄存器控制數(shù)據(jù)的收發(fā)。
2.2  HDLC協(xié)議實現(xiàn)
2.2.1 HDLC傳輸通道設(shè)計

  微波網(wǎng)絡(luò)管理系統(tǒng)主要用于管理和維護傳輸網(wǎng)絡(luò)中微波網(wǎng)絡(luò)及微波設(shè)備的性能、故障、告警和配置,實時監(jiān)測與管理微波網(wǎng)絡(luò)的運行狀況,系統(tǒng)由微波網(wǎng)管軟件與微波網(wǎng)管系統(tǒng)控制器組成。微波網(wǎng)管軟件通過訪問控制器監(jiān)測連接在網(wǎng)絡(luò)上的微波設(shè)備的性能狀態(tài),控制器通過HDLC 協(xié)議與微波設(shè)備通信,采集微波設(shè)備數(shù)據(jù)并存儲。
  HDLC傳輸通道連接如圖2所示。網(wǎng)管系統(tǒng)控制器通過RS-232接口與微波設(shè)備連接,接口芯片選用MAX3232,采用HDLC協(xié)議實現(xiàn)數(shù)據(jù)傳輸。不同微波站點的網(wǎng)管系統(tǒng)控制器間通過RS-485接口完成通信,接口芯片選用ADM3491,數(shù)據(jù)傳輸時同樣遵循HDLC協(xié)議。

 

2.2.2  HDLC協(xié)議實現(xiàn)
  系統(tǒng)HDLC協(xié)議傳輸支持2種數(shù)據(jù)傳輸模式: 中斷模式和DMA 模式。對于中斷模式, 由于CPU 需要主動干預(yù)緩沖區(qū)和I/O 模塊之間的數(shù)據(jù)傳送, 因此將會導(dǎo)致過多的系統(tǒng)切換開銷,降低CPU 利用率, 同時無法支持高速的數(shù)據(jù)傳輸。本系統(tǒng)采用DMA 模式。在DMA 模式下, S3C4510B 中的HDLC 控制器使用了緩沖區(qū)描述符BD (Buffer Descriptor) 來實現(xiàn)以幀為單位的數(shù)據(jù)發(fā)送和接收。BD 是S3C4510B 中HDLC 控制器用以實現(xiàn)DMA 模式下的數(shù)據(jù)收發(fā)而使用的數(shù)據(jù)結(jié)構(gòu), 且構(gòu)成循環(huán)鏈表的形式,使用BD緩沖描述符結(jié)構(gòu),可以實現(xiàn)以幀為單位對數(shù)據(jù)進行接收和發(fā)送控制,只需要填寫相應(yīng)BD結(jié)構(gòu)的域信息,配置收發(fā)模式,具體的執(zhí)行由DMA單元控制完成。
  DMA方式下HDLC數(shù)據(jù)接收和發(fā)送的實現(xiàn)。首先要進行系統(tǒng)HDLC通道的初始化。實現(xiàn)步驟如下:
  (1)HDLC通道復(fù)位, 恢復(fù)其默認配置;
  (2)設(shè)置工作模式寄存器(HMODE)來配置HDLC工作模式;
  (3)設(shè)置控制寄存器(HCON)來控制HDLC通道的工作;
  (4)設(shè)置中斷使能寄存器(HINTEN)來控制HDLC通道的中斷產(chǎn)生;
  (5)設(shè)置站地址寄存器(HSAR0- HSAR3)和掩碼寄存器(HMASK);
  (6)建立DMA方式的發(fā)送和接收BUFFER描述符鏈表結(jié)構(gòu), 并初始化DMA發(fā)送BUFFER 緩沖描述符指針寄存器(DMATxPTR)和DMA接收BUFFER緩沖描述符指針寄存器(DMARxPTR);
  (7)使能HDLC通道的收發(fā)功能。
  DMA方式下HDLC通道的數(shù)據(jù)發(fā)送實現(xiàn)步驟如下:
  (1)讀取發(fā)送緩沖幀描述符指針寄存器DMATxPTR,得到當(dāng)前發(fā)送幀描述符的地址,得到整個發(fā)送幀描述符的內(nèi)容;
  (2)得到發(fā)送幀描述符中幀數(shù)據(jù)BUFFER起始地址;
  (3)將準備好的HDLC幀拷貝到BUFFER中;
  (4)設(shè)置當(dāng)前幀描述符中的相應(yīng)控制位;
  (5)將發(fā)送幀描述符的OWERSHIP位設(shè)置為DMA所有,使能HDLC的DMA發(fā)送。
  按上述步驟完成后, DMA即可主動將BUFFER中的數(shù)據(jù)拷貝到HDLC通道TxFIFO中發(fā)送出去。一幀發(fā)送完畢后,S3C4510B將已使用的發(fā)送BUFFER描述符的OWERSHIP位設(shè)置為CPU所有, 并將幀緩沖描述符指針寄存器DMATxPTR中的內(nèi)容更新為下一個未使用的發(fā)送BUFFER描述符地址。
  HDLC通道數(shù)據(jù)接收實現(xiàn)步驟如下:
  (1)接收到數(shù)據(jù)時,DMA機制會從DMARxPTR指向的接收BUFFER描述符中找到接收BUFFER的起始地址, 然后把收到的數(shù)據(jù)寫入BUFFER;
  (2)如果接收無誤,S3C4510B自動更新DMARxPTR寄存器的值,使其指向下一個還未使用的接收BUFFER描述符,以備下一次接收使用。
3  系統(tǒng)驗證
  對系統(tǒng)進行調(diào)試、聯(lián)機測試。
  網(wǎng)管系統(tǒng)遵循HDLC協(xié)議傳輸微波設(shè)備性能數(shù)據(jù)。參數(shù)包括誤碼秒 ES、嚴重誤碼秒 SES、不可用秒數(shù)US以及總秒數(shù)TS及狀態(tài)數(shù)據(jù),包括輸出功率TX、輸出頻率TF、輸出電平RF、頻率RX以及輸出電源電壓,微波網(wǎng)管軟件通過查詢/輪詢方式訪問網(wǎng)管控制器,讀取微波設(shè)備數(shù)據(jù)。微波網(wǎng)管軟件通過HDLC協(xié)議傳輸?shù)奈⒉ㄔO(shè)備數(shù)據(jù)如圖3所示。


  HDLC協(xié)議在微波網(wǎng)管系統(tǒng)的正確實現(xiàn)說明了通過利用S3C4510B內(nèi)嵌的HDLC控制器完成HDLC協(xié)議的封裝與解析,在實現(xiàn)系統(tǒng)功能的同時,簡化了電路設(shè)計,縮短了系統(tǒng)開發(fā)周期。
參考文獻
[1]  李駒光,聶雪媛.ARM應(yīng)用系統(tǒng)開發(fā)詳解——基于S3C4510B的系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2003.
[2]  Samsung Electronics. S3C4510B User Manual.1999.
[3]  劉朋,金野. 基于S3C4510B和μClinux的HDLC接口設(shè)計實現(xiàn)[J]. 微計算機信息,2007(2):1-3.
[4]  談國文,張煒,朱丹,等. 基于HDLC協(xié)議的實時通信軟件的設(shè)計與實現(xiàn)[J].計算機工程與科學(xué),2000(22):87-90.
[5]  高振斌,陳禾,韓月秋. HDLC協(xié)議RS-485總線控制器的FPGA實現(xiàn)[J].河北工業(yè)大學(xué)學(xué)報,2004(5):28-32.

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