《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于MPC860的HDLC通道驅動程序的設計與實現

基于MPC860的HDLC通道驅動程序的設計與實現

2008-09-24
作者:羅文翰1, 張劍鋒2

  摘 要: 闡述了MPC860芯片及其SCC接口的基本工作原理,介紹了在SCC通道上實現HDLC協議的基本設計思想及具體實現,并給出了主要功能函數的設計流程。
  關鍵詞: HDLC MPC860 VxWorks操作系統 驅動程序


  HDLC作為一種基于點到點/多點的數據鏈路" title="鏈路">鏈路層協議,常常用來連接路由器和網關等網絡設備。摩托羅拉公司生產的MPC860微處理器是當前應用非常廣泛的嵌入式微處理器,良好的性價比和強大的通信與網絡協議處理能力以及豐富的通信接口支持使其非常適合構建VOIP網關;特別是其SCC接口本身支持HDLC協議,因此可以通過它的一個SCC接口來為VOIP網關和信令網" title="信令網">信令網之間提供鏈路支持。VOIP作為一種基于IP的數據傳輸技術,廣泛地利用Internet全球互連環境,將傳統的PSTN電話網和Internet網絡合二為一,因此可以有效地降低系統成本和管理成本。作為一種高效且經濟的數據和話音通信方式,它是當前技術研究和開發的熱點。實現VOIP的關鍵是IP網關,其中信令網關主要將信令網的信令信息轉換成Internet網絡的相關報文控制信息。本文介紹如何在MPC860板的SCC2通道上實現HDLC的驅動程序,從而為信令網和網關之間提供鏈路支持。
1 HDLC簡介
  HDLC是一個在同步網上傳輸數據并面向位的數據鏈路層協議,具有透明傳輸、可靠性高、傳輸效率高以及靈活性高等特點。它采用點對點或多點(多路播送或一對多)連接的主/從結構,要求每個從站都有唯一的地址,從站只有在允許通信時才能且只能和主站通信,這就消除了串行線路上由于幾個從站同時發送引起沖突的可能性。其它的通用的二層協議如SS#7、AppleTalk、 LAPB、LAPD等都是基于HDLC及其幀結構的。HDLC幀結構如圖1所示。


  F:標志位,每個HDLC幀以8位序列(01111110)標志幀的開始和結束,這是HDLC中僅有的兩個包含連續六個1的可能組合。為了避免在其它域中出現這種組合,HDLC采用了一種叫作位插入的辦法實現組合,即每發現有連續五個1時便在下一位自動插入一個0,接收器在收到連續五個1之后又自動刪去插入的0。標志位除了標志幀的開始和結束外,還可用作時鐘同步,接收設備不斷地搜尋標志位,以實現幀同步,從而保證接收部分對后續字段的正確識別。另外,在幀與幀的空載期間,可以連續發送這種標志序列,用作時間填充。
  A:目的地址位,用于指示報文發往何站。每個從站必須有唯一的地址,主站必須知道每個從站的指定地址。全“1”構成的地址在HDLC中定義為廣播地址,全“0”構成的地址在HDLC中定義為無站地址,用于測試數據鏈路的狀態。
  C:控制位,用于系統初始化、標志幀的序號,并在報文發送完成后通知從站響應,對以前發送幀進行應答。尾隨控制段的信息通常用于報文傳輸、出錯報告和其它各種功能,這些功能由控制段的格式完成。有三種格式可供使用:報文格式、監控格式和無序號格式。
  I:信息域,是可選的。如果信息存在,它必須有8位整數數量的長度。
  CRC:幀校驗位,長度為16位或32位,幀校驗序列用于對幀進行循環冗余校驗,其校驗范圍從地址字段的第一比特到信息字段的最后一比特的序列,并且規定為了透明傳輸而插入的“0”不在校驗范圍內。
  HDLC常被用來向X.25、ISDN和幀中繼網等提供信令和控制數據鏈路。
2 MPC860及其SCC接口
  MPC860是美國摩托羅拉公司生產的一種通用的32位嵌入式通信控制器。它是以RISC體系結構為基礎并在片內集成有微處理器和多種外設接口的專用通信芯片,具有強大的通信和網絡協議處理能力,可廣泛應用于各種通信和網絡產品中。它主要由嵌入式PowerPC內核、系統接口單元(SIU)和通信處理器模塊(CPM)組成。它的CPM提供了豐富的串行通道,包括四個串行通信控制器(SCC)、兩個串行管理單元(SMC)、一個串行外圍接口(SPI)和一個I2C接口。
  其中,SCC是MPC860最強大的通信設備。四個SCC端口通過相應的配置可支持不同的協議,如以太網、IEEE802.3 10M局域網、HDLC、appleTalk、通用異步收發協議UART、同步UART、串行紅外線接口IrDA、二進制同步通信BISYNC及透明發送等網絡協議,可以分別用于網橋、路由器、網關、LAN、WAN及專用網。因此,本文將其中的一個SCC端口配置成HDLC模式用在VOIP信令網關中,為信令網和網關之間提供鏈路支持。SCC數據通信基本流程如圖2所示。


  當處于接收狀態時,數據首先進入FIFO。當接收FIFO充滿時,CPM向SCC發請求,并由CPM RISC處理該請求,然后通過寫SDMA將數據按照緩存描述符" title="描述符">描述符的指示存入指定的緩存中。緩存描述符是進行數據收發的基礎,它由三個部分組成:頭16個比特用來描述收發的狀態模式;接下來是數據長度" title="數據長度">數據長度描述符,表示即將存入緩存的數據長度;最后是數據指針,它指向即將存入數據的緩存。發送過程與接收過程基本上是一樣的,通過緩存描述符,能夠正確讀寫緩存。
3 驅動程序的設計思想及其實現
  這里選擇VxWorks作為本CPU板的操作系統。VxWorks是美國風河系統公司推出的一種高性能、可裁減的實時嵌入式操作系統,以其良好的可靠性和卓越的實時性被廣泛應用于通信、軍事、航天等領域。因此,程序的設計必須按照這個操作系統的結構來構建。本文的主要目的是將MPC860處理器的一個SCC通道配置成為HDLC模式,以支持VxWorks操作系統下的HDLC通信,所以程序的設計主要圍繞這個目的進行,在此并沒有按照傳統驅動的模式構建驅動程序,而是直接對硬件進行操作。首先設置通道參數,將其配置成HDLC模式,然后設計基本功能函數。當驅動程序運行時,首先要進行SCC通道的初始化以及存儲區的初始化,然后才開始執行收發功能,在這當中要加上中斷控制。按照這個程序的基本流程,具體的實現分為下面幾步(在本設計中將SCC2配置成HDLC模式)。
3.1 定義參數RAM
  參數RAM主要包括通道參數RAM和通道協議參數RAM兩部分,SCC通道的主要參數都在這個里面配置。它們包含CPM RISC用來正確操作SCC通道的特定協議所用的信息。
3.2 初始化SCC2
  (1)將MPC860的PA12、PA13引腳作為SCC2的收發引腳。
  (2)MPC860有四個BGR和八個外部時鐘引腳,將SCC的收發時鐘分別配置成內部時鐘和外部時鐘。
  (3)將SCC2配置為NMSI模式。
  (4)初始化SDCR寄存器,給予SDMA一個仲裁ID以提供U總線上的優先級。
  (5)初始化SCC2的參數RAM(這步對所有的協議都是通用的):
  ①設置Rx/TxBD 表的基址相對于雙端口RAM的偏移量;
 ?、谠O置收發緩沖區描述符表基址相對于IMMR寄存器中值的偏移量;
  ③設置Rx/Tx 的函數代碼;
 ?、茉贛RBLR中設置接收緩存的最大" title="最大">最大空間。
  (6)針對SCC2的HDLC模式進行初始化;
  ①通過C_MASK和C_PRES 設置CCITT-CRC;
 ?、趯PM維護的五個計數器DISFC、CRCEC、 ABTSC、 NMARC和RETRC清零;
 ?、墼贛FLR中定義最大幀長度,通常定義為0x0100,表示最大幀長度為256字節;
 ?、茉赗FTHR中定義接收到多少個HDLC幀時產生一個中斷申請,當將RFTHR置位0x0001時,表示每接收到一個幀產生一個中斷申請;
 ?、菰O置接收地址,hmask用來定義地址掩碼,當hmsk=0x0000時,表示接收所有幀。
  每個SCC有四個地址存儲器HADDR1~HADDR4,所以每個SCC可識別四個地址,包括廣播地址。接收時,通過與HDLC幀的目的地址進行比較,確定接收該幀還是丟棄。
3.3 初始化收發緩存區描述符
  (1)在初始化緩存區描述符的過程中,收發都必須停止。通過將GSMR_L2的ENT和ENR置零,然后配置CPCR中的CP命令就可以禁止收發。
  (2)配置收發緩存區描述符:
 ?、倥渲卯斍敖邮站彺鎱^描述符表的基地址,即IMMR的基地址再加上收發緩存區描述符表相對于IMMR的偏移地址。由于發送緩存區描述符表緊跟在接收緩存區描述符表的后面,因此發送緩存區描述符表的基地址為接收緩存區描述符表的基地址加上整個接收緩存區描述符表的長度。
  ②初始化發送緩存區描述符表和接收緩存區描述符表。如果收發緩存區都為空,分別將每一個發送緩存區描述符表和接收緩存區描述符表的狀態模式參數中的狀態位E置1、數據長度置0,并將它們的地址設置成相應的值。如果收緩存區或發緩存區不為空,則應該先將這些緩存區清零。值得注意的是,最后一個收發緩存區描述符表的W位必須置1。
  (3)初始化完成后,應該將ENT和ENR位置1。
3.4 收發功能的實現
3.4.1 接收函數

  接收函數流程圖如圖3所示。


  在GSMR_L2寄存器的ENR位置1的前提下,HDLC控制器進入接收允許狀態。在正式讀入數據前,必須先檢測幀開始標志,并匹配地址,然后決定是否進入接收狀態。進入接收狀態后,首先提取RxBD的狀態模式字節,若接收未準備好,則繼續等待,若準備好了,則開始接收。由于一個數據包可以放置于多個緩存,所以檢測RxBD狀態模式字節的L位,以判斷是否為本幀的最后一個緩存:如果不是,則關閉這個緩存,處理下一個緩存描述字;如果是,接收完最后一個緩存的數據后結束接收過程。對于最后一個buffer,需要檢測是否有接收錯誤。
3.4.2 發送函數
  發送函數流程圖如圖4所示。


  在GSMR_L2寄存器的ENT位置1的前提下,HDLC控制器進入發送允許狀態。首先提取TxBD的狀態模式字節,若發送未準備好,則繼續等待,若準備好了,則進入發送狀態,在發送數據中間插入適當的標志位后就可以發送。由于一個發送數據包可以包含多個緩存,所以檢測TxBD狀態模式字節的L位,以判斷是否為最后一個緩存:如果不是,則關閉這個緩存,處理下一個緩存描述字;如果是,控制器進入關閉發送狀態。對于最后一個buffer,需要做兩件事情:(1)檢測是否有發送錯誤。(2)以剩下的實際數據長度作為發送幀中數據段的長度發送出去。
3.5 中斷處理
  在這個驅動程序中,只處理SCC2產生的中斷。首先確定是否是CPM產生的中斷,然后讀取寄存器CPM中斷向量寄存器(CIVR)的VN字段判斷是否為SCC2產生的中斷。如果是的話,就讀取SCEE確定中斷類型,然后做出相應的處理。
  本程序通過在MPC860上做環回測試,情況良好。但在程序實現過程中,中斷的控制還有待于進一步完善。
參考文獻
1 MPC860 PowerPC User’s Manual.Motorola Inc,1998.7
2 VxWorks Programmer’s Guide 5.4 Edition 1.Winder River Corporation,1999.5
3 SP Developer’s Guide for VxWorks 5.5 Edition.Winder River Corporation,2002.8

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美性生交xxxxx久久久| 亚洲欧美激情精品一区二区| 亚洲午夜在线观看| 国产精品毛片a∨一区二区三区| 久久蜜桃精品| 欧美一区二区国产| 国产日韩欧美| 亚洲美女中出| 欧美精品一区二区三区很污很色的| 亚洲国产成人porn| 欧美日韩精品在线播放| 国产欧美在线| 亚洲一区免费视频| 很黄很黄激情成人| 亚洲精品一区二区在线观看| 久久不射中文字幕| 噜噜噜在线观看免费视频日韩| 激情成人av在线| 国产亚洲欧美色| 亚洲蜜桃精久久久久久久| 欧美视频一区在线观看| 欧美日本一道本| 国产精品v欧美精品v日韩精品| 欧美 日韩 国产 一区| 欧美日韩综合在线免费观看| 欧美二区在线看| 影音先锋国产精品| 久久久久99| 欧美1区2区3区| 国产亚洲激情| 影音先锋在线一区| 亚洲电影av在线| 在线视频国产日韩| 欧美大片免费看| 国产自产2019最新不卡| 国产精品99久久久久久久久| 黄色一区二区三区四区| 日韩视频欧美视频| 欧美在线播放一区二区| 欧美成人精品激情在线观看| 国模套图日韩精品一区二区| 国产综合精品一区| 欧美mv日韩mv亚洲| 亚洲欧洲精品一区二区三区不卡| 亚洲国产视频a| 欧美一区在线看| 在线午夜精品| 一色屋精品视频在线看| 99这里只有久久精品视频| 欧美午夜精品一区二区三区| 久久精品二区亚洲w码| 亚洲女性喷水在线观看一区| 伊人久久成人| 亚洲国语精品自产拍在线观看| 欧美午夜精品久久久| 久久久免费精品| 一区在线电影| 国产精品天天摸av网| 欧美成人三级在线| 另类成人小视频在线| 欧美日韩免费观看中文| 久久人人看视频| 国产一区二区三区高清| 欧美制服丝袜| 亚洲网站在线播放| 欧美色123| 一区二区三区在线免费视频| 香蕉成人伊视频在线观看| aa国产精品| 久久久久在线| 欧美成人一区二免费视频软件| 亚洲欧美在线一区| 国产一区二区三区日韩欧美| 在线 亚洲欧美在线综合一区| 国产麻豆91精品| 亚洲一区精品电影| 久久天堂成人| 亚洲午夜精品一区二区| 亚洲一区二区视频在线| 亚洲精品国偷自产在线99热| 一区二区三区精品视频| 欧美日韩国产一级| 国产精品高清一区二区三区| 国产精品成人一区二区三区吃奶| 国外成人性视频| 国模私拍一区二区三区| 国产欧美一区二区三区国产幕精品| 国产视频在线观看一区| 亚洲欧美在线免费观看| 亚洲国产成人porn| 一区二区三区导航| 亚洲成人在线网站| 亚洲国产一区在线观看| 亚洲影视九九影院在线观看| 两个人的视频www国产精品| 久久精品国产91精品亚洲| 久久三级视频| 欧美在线视频不卡| 欧美一区在线看| 欧美亚洲免费在线| 国产综合精品一区| 国产精品av久久久久久麻豆网| 亚洲精品1234| 久久久久国产一区二区三区四区| 久久久免费av| 激情五月综合色婷婷一区二区| 欧美aⅴ一区二区三区视频| 麻豆精品在线视频| 午夜精品久久久久99热蜜桃导演| 亚洲欧美久久久久一区二区三区| 国产精品欧美日韩久久| 免费在线亚洲| 亚洲欧美偷拍卡通变态| 国产精品久久精品日日| 一区二区三区福利| 欧美日韩午夜在线视频| 欧美大片在线观看一区二区| 亚洲国产精品va在线看黑人| 欧美成年视频| 中文av字幕一区| 国产精品美女久久久免费| 欧美欧美全黄| 免费91麻豆精品国产自产在线观看| 国产欧美日韩一区二区三区在线| 国产精品久久网站| 一本到高清视频免费精品| 国产伦精品一区二区三区视频孕妇| 免费的成人av| 国产欧美日韩不卡免费| 欧美激情亚洲国产| 日韩视频免费在线观看| 麻豆av一区二区三区久久| 亚洲精品一区二| 亚洲无线观看| 日韩午夜电影av| 一级成人国产| 欧美.日韩.国产.一区.二区| 欧美激情亚洲国产| 久久影院午夜论| 性久久久久久| 小黄鸭精品密入口导航| 久久精品毛片| 久久久久国产一区二区| 美女国内精品自产拍在线播放| 久久久久久久91| 久久精品国产2020观看福利| 亚洲一区二区四区| 亚洲三级国产| 午夜欧美大片免费观看| 欧美成人免费一级人片100| 欧美激情亚洲自拍| 激情五月***国产精品| 欧美日韩国产综合视频在线| 一本综合精品| 国产一区观看| 午夜精品一区二区三区在线| 亚洲精品午夜| 精品福利电影| 国语自产在线不卡| 欧美国产大片| 欧美激情乱人伦| 欧美深夜影院| 一区二区三区欧美亚洲| 国产欧美日韩精品a在线观看| 久久夜色精品国产噜噜av| 欧美激情综合在线| 久久激情一区| 亚洲精品护士| 亚洲人在线视频| 中文欧美在线视频| 国产欧美精品日韩区二区麻豆天美| 亚洲免费在线精品一区| 亚洲欧美国产日韩中文字幕| 樱桃视频在线观看一区| 欧美视频一区| 亚洲免费观看在线观看| 国产精品第十页| 亚洲国产精品成人综合| 亚洲欧洲在线看| 国内精品久久久久伊人av| 久久米奇亚洲| 日韩写真视频在线观看| 欧美精品自拍偷拍动漫精品| 欧美在线免费视屏| 国产亚洲欧美aaaa| 久久理论片午夜琪琪电影网| 欧美精品日韩一本| 亚洲视频1区| 午夜欧美电影在线观看| 国产精品啊啊啊| 久久久亚洲精品一区二区三区| 国产精品电影在线观看| 欧美精品九九99久久| 久久精品国产96久久久香蕉| 亚洲片在线观看| 影音先锋一区| 国语精品一区| 欧美午夜片在线观看| 国产精品护士白丝一区av| 国产精品久久久99| 国产精品成人v| 欧美怡红院视频| 欧美一区二区三区在线播放| 欧美精品一区二区三区一线天视频| 亚洲一区二区三区中文字幕在线| 欧美精品91| 国产精品一区二区三区四区五区| 日韩一二三区视频| 欧美福利一区| 在线亚洲精品| 另类专区欧美制服同性| 久久综合一区二区三区| 亚洲国产清纯| 亚洲一区二区三区免费观看| 99精品视频免费在线观看| 欧美日韩一本到| 久久国产毛片| 亚洲亚洲精品在线观看| 日韩亚洲欧美一区二区三区| 欧美午夜宅男影院在线观看| 麻豆国产精品一区二区三区| 久久五月婷婷丁香社区| 国产一区二区在线免费观看| 在线视频你懂得一区| 欧美日韩国产精品一卡| 亚洲一区二区黄| 欧美午夜不卡影院在线观看完整版免费| 欧美日韩亚洲另类| 在线性视频日韩欧美| 国产日产欧产精品推荐色| 国产精品网站在线播放| 欧美色欧美亚洲另类二区| 国产精一区二区三区| 国语自产精品视频在线看| 亚洲国产日韩精品| 国产午夜精品全部视频在线播放| 国产精品国产三级国产专播品爱网| 国产九区一区在线| aⅴ色国产欧美| 欧美一区国产一区| 黄色亚洲在线| 一区二区三区国产精华| 99视频超级精品| 好吊视频一区二区三区四区| 国产精品国产成人国产三级| 国产精品亚发布| 欧美性做爰猛烈叫床潮| 一区二区国产在线观看| 99精品热视频| 亚洲网站在线看| 欧美一区在线直播| 午夜久久一区| 西西裸体人体做爰大胆久久久| 国产精品99久久久久久www| 亚洲影院高清在线| 在线成人激情黄色| 国产精品一区二区三区免费观看| 久久久久久网站| 欧美三级韩国三级日本三斤| 免费一级欧美片在线播放| 欧美一区二区在线免费观看| 国产伦精品一区二区三| 性色av一区二区三区在线观看| 在线观看欧美亚洲| 国内精品嫩模av私拍在线观看| 亚洲毛片播放| 亚洲一区亚洲二区| 亚洲视频精选在线| 亚洲精品亚洲人成人网| 99riav国产精品| 激情国产一区| 亚洲精品视频在线播放| 国产精品久久久久99| 亚洲欧美伊人| 一二三区精品| 在线观看亚洲精品| 精品999久久久| 亚洲性线免费观看视频成熟| 国产精品爽爽ⅴa在线观看| 亚洲精选中文字幕| 欧美一区二区三区喷汁尤物| 亚洲欧洲日本一区二区三区| 欧美黑人国产人伦爽爽爽| 欧美一区永久视频免费观看| 美女爽到呻吟久久久久| 午夜精品国产精品大乳美女| 欧美日韩一区二区三区| 久久一区二区三区四区五区| 亚洲裸体视频| 国产午夜精品在线观看| 国产综合欧美在线看| 欧美专区亚洲专区| 国产精品成人一区二区三区夜夜夜| 国产亚洲欧美一区二区三区| 国产午夜亚洲精品理论片色戒| 国产精品女人久久久久久| 亚洲高清不卡在线观看| 欧美日韩国产小视频| 久久gogo国模裸体人体| 国产精品女同互慰在线看| 麻豆9191精品国产| 欧美亚洲动漫精品| 国产亚洲精品久| 在线观看欧美一区| 国产在线一区二区三区四区| 欧美精品福利| 欧美视频专区一二在线观看| 欧美顶级艳妇交换群宴| 欧美高清视频| 久久视频在线视频| 有坂深雪在线一区| 国产午夜精品久久| 久久一日本道色综合久久| 亚洲视频1区2区| 欧美激情一二三区| 国产精品久久久亚洲一区| 亚洲精品欧洲精品| 亚洲精品视频啊美女在线直播| 91久久在线视频| 国产美女在线精品免费观看| 亚洲一级一区| 欧美日韩成人| 亚洲欧美国产高清va在线播| 国产乱人伦精品一区二区| 亚洲午夜激情| 欧美视频免费| 久久久人成影片一区二区三区观看| 韩日欧美一区二区|