《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于PowerPC的自環通信系統的BSP設計

基于PowerPC的自環通信系統的BSP設計

2008-03-26
作者:常耀斌,鄧中亮

  摘 要: 針對PowerPC在高速信號和大量數據處理中的應用優勢,在PowerPC860板的通信處理模塊CPM的SCC3設備上" title="設備上">設備上開發了板級支持包BSP,使串口通信" title="串口通信">串口通信通道SCC3端口實現了HDLC協議的自環方式通信,通過SCC3端口發送數據或文件,將接收到的數據通過串口發送到PC仿真終端顯示。
  關鍵詞: BSP設計 驅動程序 緩存區 緩存區描述符

?

  嵌入式系統是一種對可靠性和實時性要求較高的專用計算機系統。PowerPC860能夠提供良好的編程、編譯、系統配置和調試環境,同時能在底層實現模塊化和屏蔽化。VxWorks是32位的實時操作系統,支持32位以上的嵌入式處理器,如MIPS、ARM、PowerPC系列等。在VxWorks的開發環境Tornado中已集成了很多基于ARM和PowerPC系列的驅動模塊,如網卡設備驅動、串口通信驅動、塊設備驅動等。在Tornado系統中,已在串口通信通道SCC3設備上開發了基于UART協議的板級支持BSP。但由于UART協議沒有數據差錯校驗處理,所以不能實現數據的可靠傳輸。本文基于HDLC協議,提出了通過SCC3端口發送和接收數據" title="接收數據">接收數據,其中SCC3的接收緩沖區不但包括發送緩沖區的數據內容,還包括16位或32位的CRC差錯校驗,實現了數據的高可靠性和實時性傳輸。PowerPC860的板級支持包BSP的設計是實現SCC自環通信系統開發及移植的重點,BSP 主要完成VxWorks 對專用目標板的支持。由于對硬件系統緊湊性和操作系統處理性能的要求,本BSP設計是在SCC3端口上采用NMSI方式實現的自環通信。
1 系統的BSP初始化方法
  PowerPC860由其內核、系統接口單元和通信處理模塊CPM三部分組成。其中通信處理模塊可以在不同的設備上發送和接收信息,還可以在CPM的串口通信通道SCC上實現不同協議的傳輸。一個BSP 包括硬件初始化、中斷處理和產生、硬件時鐘管理、本地和總線內存空間映射,同時也包含定制VxWorks 映像。目標板初始化和驅動程序設計是SCC3端口實現HDLC協議自環方式通信的關鍵和難點。通常,BSP提供的功能有:初始化(CPU初始化、目標板初始化、內核初始化)和驅動程序支持。驅動程序負責硬件設備的初始化,并與設備交互實現系統對設備功能的調用。本文提出的BSP設計特點是基于HDLC模式對SCC3通道初始化以及存儲區的初始化配置,并采用中斷控制提高數據傳輸效率。該BSP能夠提供標準接口,包括設備初始化、設備的啟動和停止、設備狀態查詢、中斷和查詢方式下發送和接收數據,從而實現底層模塊化及提高數據處理效率。
1.1 對自環通信的SCC3初始化的硬件設計
  配置發送與接收所用的波特率發生器,將SCC3的收發時鐘分別配置成內部時鐘和外部時鐘;將SCC3配置成NMSI模式,初始化SDCR寄存器。在函數sccIoctl中,模式為16位CRC寄存器的設置如下:
sccIoctl(SCC_CHAN*pChan,int com,int arg)
{
if(arg==CRC16_MODE)
{ pChan->hdlc.pSccReg->psmr&=~0x0800;
pChan->hdlc.pScc->c_mask=CRC16_MASK;
pChan->hdlc.pScc->c_pres=CRC16_PRES;
}
return (status);
}
1.2 對初始化SCC3的軟件設計
  SCC3的初始化包括參數RAM和收發緩沖區描述符" title="描述符">描述符BD的初始化。IMMR寄存器的值是內存基址,其中內存包括寄存器基址和收發緩沖區描述符BD等。設置Rx和TxBD表的基址相對于雙端口RAM的偏移量;設置Rx和Tx的函數代碼;在MRBLR中設置接收緩存的最大" title="最大">最大空間;設置收發緩沖區描述符BD表基址相對于IMMR寄存器中值的偏移量。收發緩沖區描述符BD對Buffer結構進行描述,包括對Buffer的狀態statusMode(即是否為空)、長度dataLength和指針dataPointer的描述。收發緩沖區描述符BD初始化過程如下(其中MAX_RXBD_
NUM為最大接收緩沖區描述符BD數,MAX_BUF_SIZE為最大接收Buffer數目):
static void InitBDs(void)
{
int i=0;/*pRxBuffer是Buffer的首地址*/
for (i=0;i{
RecvBD[i]->statusMode=0x0000;
RecvBD[i]->statusMode|=(BD_RX_EMPTY_BIT);
RecvBD[i]->dataLength=0;
RecvBD[i]->dataPointer=(u_char*)(pRxBuffer+i*MAX_BUF_SIZE);
}
}
2 自環方式通信系統的驅動設計
  由于系統在自環通信方式下工作,所以SCC3的參數RAM、收發緩存區描述符等的內存地址設計、UART協議和HDLC協議的驅動設計方法、自環通信和多通道通信方式設計將發生根本變化。因此系統設備驅動程序需編寫具有相應特點的設備函數。
  (1)接收函數sccPollInput()的設計。
  正式讀入數據前,必須先檢測幀開始標志,并匹配地址,然后決定是否進入接收狀態。進入接收狀態后,首先提取RxBD的狀態模式字節,若接收未準備好,則繼續等待;若已準備好,則開始接收。由于一個數據包可以放置于多個緩存,所以檢測RxBD狀態模式字節的L位,以判斷是否為本幀的最后一個緩存。如果不是,則關閉這個緩存,處理下一個緩存描述字;如果是,則接收完最后一個緩存的數據后結束接收過程。對于最后一個buffer,需要檢測是否有接收錯誤。下面舉例說明SCC3的一個接收緩沖區描述符BD所描述的5個Buffer的數據接收過程,如圖1所示。該例設節點地址STADDR為0x1999,最大Buffer接收數MAX_BUF_SIZE為5,接收緩存地址pRxBuffer,連續接收發送緩存區數據66,XmitBD[0]->dataPointer為首地址pRxBuffer賦值。


  接收Buffer的數據結構和實現接收數據的基本過程如下:
#define MAX_BUF_SIZE 5
#define STADDR 0x1999
typedef struct
{
SCC_HDLC_BUF*pTxBuffer;
SCC_HDLC_BUF*pRxBuffer;
}SCC_HDLC_DEV
*pRxBuffer =XmitBD[0]->dataPointer;
*pRxBuffer=(STADDR%256);
*pRxBuffer=pRxBuffer +1;
*pRxBuffer=(STADDR/256);
pRxBuffer=pRxBuffer +1;
for(index=2;index_BUF_SIZE;index++)

  {*pRxBuffer=0x66;pRxBuffer=pRxBuffer+1;}
  (2)發送函數sccPollInput( )的設計。
  設計方法同接收函數相似,但對于最后一個Buffer,需要檢測是否有發送錯誤,并以剩下的實際數據長度作為發送幀中數據段的長度發送。
  (3)設備控制函數sccIoctl()和數據發送函數sccStartup( )的設計。
  sccIoctl()函數用于設備工作模式配置和參數讀取。其中包括工作模式、通信速率、節點地址、CRC模式、最長幀等。輪詢模式下的收、發消息不需外部消息激勵,減少了任務的相互調度,可以用taskDelay實現 ,但是效率較低。sccStartup( )是中斷方式下的數據發送函數,設計要求在sysHwInit2( )函數中用接口inConnect( )實現關聯sccStartup( )和ISR。
  本文是在CS860板的SCC3設備上開發支持標準HDLC點對點通信協議的BSP,它實現了數據的高可靠和實時性傳輸。基于Vxworks 操作系統的HDLC協議自環通信,按一定的步驟分階段編碼調試實現。開發步驟包括:建立開發環境、編寫初始化代碼驅動、調試BSP等。通過測試程序實現了在查詢及中斷方式下發送和接收數據,在超級終端設置和查看工作模式、通信速率、節點地址、CRC模式,最長幀等,并設有收發是否正常及錯誤類型告警提示。通過硬件配置和程序調試,本文的BSP能在PowerPC860的其他SCC上移植。
參考文獻
1 Motorola Company.The MPC860 PowerQUICC TrainingCDROM [EB/OL].America,Motorola,2004
2 李方敏.VxWorks高級程序設計[M].北京:清華大學出版社,2004
3 周啟平.VxWorks下設備驅動程序BSP及開發指南[M].北京:中國電力出版社,2004
4 張昆藏.計算機組織與結構——性能設計(第五版)[M].北京:電子工業出版社,2004

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜精品福利一区二区蜜股av| 亚洲精品之草原avav久久| 狠狠色丁香婷婷综合| 欧美性猛交视频| 欧美精品在线免费| 欧美成人免费视频| 另类亚洲自拍| 免费毛片一区二区三区久久久| 久久久福利视频| 久久久亚洲综合| 久久久人成影片一区二区三区| 久久国产黑丝| 久久精精品视频| 欧美一区二区三区日韩视频| 亚洲欧美日韩中文在线制服| 亚洲视频免费观看| 亚洲视屏一区| 亚洲午夜极品| 亚洲一区二区在线| 亚洲欧美日本在线| 欧美一级视频免费在线观看| 性欧美办公室18xxxxhd| 午夜一区二区三视频在线观看| 亚洲一区在线免费| 亚洲欧美日韩一区二区三区在线观看| 亚洲一级二级在线| 亚洲欧美日韩精品| 欧美与黑人午夜性猛交久久久| 羞羞色国产精品| 久久高清福利视频| 久久综合中文色婷婷| 免费观看亚洲视频大全| 欧美激情1区2区3区| 欧美日韩少妇| 国产精品视频xxxx| 国产欧美日韩另类视频免费观看| 国产亚洲免费的视频看| 精品盗摄一区二区三区| 亚洲三级免费电影| 亚洲一区二区三区高清| 欧美一区二区三区四区视频| 亚洲高清二区| 一区二区三区四区五区视频| 亚洲欧美中日韩| 久久久综合精品| 欧美精品不卡| 国产欧美日本| 一区在线影院| 一本色道久久精品| 西瓜成人精品人成网站| 亚洲第一毛片| 亚洲视频综合在线| 久久久91精品国产| 欧美激情综合在线| 国产精品美女999| 经典三级久久| 中文在线资源观看网站视频免费不卡 | 亚洲精品在线免费| 亚洲欧洲av一区二区| 久久综合精品国产一区二区三区| 欧美日韩的一区二区| 国产精品亚洲综合天堂夜夜| 在线成人www免费观看视频| 日韩午夜视频在线观看| 香蕉久久一区二区不卡无毒影院| 亚洲乱码精品一二三四区日韩在线| 亚洲欧美日韩在线高清直播| 亚洲一二三区视频在线观看| 1024欧美极品| 亚洲影音一区| 日韩午夜在线观看视频| 欧美一区二区免费视频| 欧美激情片在线观看| 国产精品综合不卡av| 亚洲国产欧美久久| 香蕉尹人综合在线观看| 99一区二区| 久久免费视频观看| 国产精品爱啪在线线免费观看| 一区二区三区在线观看视频 | 久久成人精品电影| 亚洲一区免费视频| 免费观看亚洲视频大全| 国产视频久久| 亚洲神马久久| 亚洲美女尤物影院| 久久一区二区精品| 国产精品视频网址| 亚洲精选大片| 亚洲日本成人| 久久嫩草精品久久久精品一| 国产精品视频在线观看| 99国产精品久久久久久久成人热| 亚洲高清不卡一区| 久久精品99久久香蕉国产色戒 | 亚洲视频成人| 99成人精品| 欧美激情精品久久久久| 伊人精品久久久久7777| 亚洲欧美另类中文字幕| 亚洲一区二区精品在线| 欧美精品激情在线观看| 樱花yy私人影院亚洲| 羞羞漫画18久久大片| 午夜精品福利一区二区蜜股av| 欧美日韩国产综合网 | 亚洲午夜精品久久久久久浪潮 | 久久影院午夜片一区| 国产嫩草影院久久久久| 亚洲天堂网站在线观看视频| 一本一本a久久| 欧美精品久久久久久久久久| 亚洲国产国产亚洲一二三| 亚洲第一天堂av| 久久午夜电影网| 狠狠色综合网站久久久久久久| 欧美一区二区观看视频| 欧美尤物一区| 国产一区欧美日韩| 欧美一区二区在线| 久久精品夜色噜噜亚洲a∨| 国产日韩欧美91| 亚洲——在线| 亚洲激情第一区| 最新亚洲电影| 欧美精品v国产精品v日韩精品| 亚洲国产美女| 亚洲免费观看在线观看| 欧美激情亚洲| 日韩视频免费观看高清在线视频| 一本色道久久88精品综合| 欧美精品久久一区二区| 日韩视频在线观看| 亚洲视屏在线播放| 国产精品日韩二区| 亚洲欧美色婷婷| 久久成人综合视频| 国产有码在线一区二区视频| 亚洲国产精品视频| 欧美电影免费观看| 亚洲精品小视频| 亚洲一区国产精品| 国产欧美精品日韩区二区麻豆天美 | 欧美一区二区精品久久911| 国产日韩一区二区三区| 久久成人18免费网站| 欧美成人激情视频免费观看| 亚洲精品在线免费观看视频| 亚洲午夜高清视频| 国产日韩在线一区| 亚洲黄色成人久久久| 欧美日韩成人在线视频| 亚洲影院在线| 久久夜色精品一区| 亚洲美女在线看| 欧美在线视频导航| 影音先锋一区| 亚洲夜间福利| 国产综合色精品一区二区三区| 亚洲精品自在在线观看| 国产精品国产三级国产普通话蜜臀| 午夜亚洲性色视频| 欧美不卡在线| 一区二区三区欧美亚洲| 久久精品国产91精品亚洲| 亚洲福利在线看| 亚洲中字黄色| 伊人色综合久久天天| 亚洲视频一区二区在线观看| 国产一区二区丝袜高跟鞋图片 | 狠狠狠色丁香婷婷综合久久五月| 99视频超级精品| 国产欧美日韩一区二区三区在线| 亚洲国产导航| 国产精品成人国产乱一区| 久久高清免费观看| 欧美色综合天天久久综合精品| 欧美一区二区三区免费看| 欧美韩国一区| 欧美一级专区| 欧美四级剧情无删版影片| 亚洲国产精品999| 国产精品成人va在线观看| 亚洲激情偷拍| 国产精品欧美日韩一区二区| 亚洲国产一区二区视频| 国产精品捆绑调教| 亚洲精品一区二| 国产一区二区av| 亚洲淫性视频| 亚洲欧洲久久| 亚洲精品在线观看视频| 亚洲电影网站| 国产精品久久久久久影视| 亚洲黄色片网站| 国产日本亚洲高清| 在线天堂一区av电影| 激情欧美丁香| 欧美永久精品| 亚洲深夜福利|