国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > MPC860的HDLC通道驅動程序的設計與實現(xiàn)

MPC860的HDLC通道驅動程序的設計與實現(xiàn)

作者: 時間:2010-01-13 來源:網(wǎng)絡 收藏
  

本文引用地址:http://m.ptau.cn/article/202570.htm

  每個SCC有四個地址存儲器HADDR1~HADDR4,所以每個SCC可識別四個地址,包括廣播地址。接收時,通過與幀的目的地址進行比較,確定接收該幀還是丟棄。


  3.3 初始化收發(fā)緩存區(qū)描述符
  

  (1)在初始化緩存區(qū)描述符的過程中,收發(fā)都必須停止。通過將GSMR_L2的ENT和ENR置零,然后配置CPCR中的CP命令就可以禁止收發(fā)。
  (2)配置收發(fā)緩存區(qū)描述符:
 ?、倥渲卯斍敖邮站彺鎱^(qū)描述符表的基地址,即IMMR的基地址再加上收發(fā)緩存區(qū)描述符表相對于IMMR的偏移地址。由于發(fā)送緩存區(qū)描述符表緊跟在接收緩存區(qū)描述符表的后面,因此發(fā)送緩存區(qū)描述符表的基地址為接收緩存區(qū)描述符表的基地址加上整個接收緩存區(qū)描述符表的長度。
 ?、诔跏蓟l(fā)送緩存區(qū)描述符表和接收緩存區(qū)描述符表。如果收發(fā)緩存區(qū)都為空,分別將每一個發(fā)送緩存區(qū)描述符表和接收緩存區(qū)描述符表的狀態(tài)模式參數(shù)中的狀態(tài)位E置1、數(shù)據(jù)長度置0,
并將它們的地址設置成相應的值。如果收緩存區(qū)或發(fā)緩存區(qū)不為空,則應該先將這些緩存區(qū)清零。值得注意的是,最后一個收發(fā)緩存區(qū)描述符表的W位必須置1。
  (3)初始化完成后,應該將ENT和ENR位置
  3.4 收發(fā)功能的實現(xiàn)
  3.4.1 接收函數(shù)
  SMR_L2寄存器的ENR位置1的前提下,控制器進入接收允許狀態(tài)。在正式讀入數(shù)據(jù)前,必須先檢測幀開始標志,并匹配地址,然后決定是否進入接收狀態(tài)。進入接收狀態(tài)后,首先提取RxBD的狀態(tài)模式字節(jié),若接收未準備好,則繼續(xù)等待,若準備好了,則開始接收。由于一個數(shù)據(jù)包可以放置于多個緩存,所以檢測RxBD狀態(tài)模式字節(jié)的L位,以判斷是否為本幀的最后一個緩存:如果不是,則關閉這個緩存,處理下一個緩存描述字;如果是,接收完最后一個緩存的數(shù)據(jù)后結束接收過程。對于最后一個buffer,需要檢測是否有接收錯誤。


  3.4.2 發(fā)送函數(shù)
  

  發(fā)送函數(shù)流程圖如圖4所示。


  在GSMR_L2寄存器的ENT位置1的前提下,控制器進入發(fā)送允許狀態(tài)。首先提取TxBD的狀態(tài)模式字節(jié),若發(fā)送未準備好,則繼續(xù)等待,若準備好了,則進入發(fā)送狀態(tài),在發(fā)送數(shù)據(jù)中間插入適當?shù)臉酥疚缓缶涂梢园l(fā)送。由于一個發(fā)送數(shù)據(jù)包可以包含多個緩存,所以檢測TxBD狀態(tài)模式字節(jié)的L位,以判斷是否為最后一個緩存:如果不是,則關閉這個緩存,處理下一個緩存描述字;如果是,控制器進入關閉發(fā)送狀態(tài)。對于最后一個buffer,需要做兩件事情:(1)檢測是否有發(fā)送錯誤。(2)以剩下的實際數(shù)據(jù)長度作為發(fā)送幀中數(shù)據(jù)段的長度發(fā)送出去。


  3.5 中斷處理
  

  在這個中,只處理SCC2產生的中斷。首先確定是否是CPM產生的中斷,然后讀取寄存器CPM中斷向量寄存器(CIVR)的VN字段判斷是否為SCC2產生的中斷。如果是的話,就讀取SCEE確定中斷類型,然后做出相應的處理。
  

  本程序通過在上做環(huán)回測試,情況良好。但在程序實現(xiàn)過程中,中斷的控制還有待于進一步完善。


上一頁 1 2 3 4 下一頁

關鍵詞: HDLC MPC 860 驅動程序

評論


相關推薦

技術專區(qū)

關閉