《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于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亚洲国产精品_日韩亚洲一区二区
欧美久久在线| 亚洲高清成人| 欧美大片在线看| 久久久xxx| 欧美一区二区三区免费观看 | 亚洲欧美激情视频| 一本久久青青| 日韩亚洲精品电影| 亚洲老司机av| 日韩视频在线观看国产| 亚洲精品婷婷| 99re8这里有精品热视频免费| 亚洲三级色网| 日韩视频一区| 一本色道久久加勒比88综合| 日韩亚洲欧美成人一区| 99精品热视频只有精品10| 伊人久久噜噜噜躁狠狠躁 | 六月婷婷久久| 麻豆av一区二区三区久久| 噜噜噜躁狠狠躁狠狠精品视频| 久久久久国产一区二区| 久久久www| 蜜桃久久精品一区二区| 欧美国产一区视频在线观看| 欧美日本簧片| 欧美揉bbbbb揉bbbbb| 欧美三区免费完整视频在线观看| 国产精品国产三级国产aⅴ浪潮| 国产精品久久久久久久午夜片| 国产精品一区二区男女羞羞无遮挡| 国产精品资源在线观看| 国产一区二区无遮挡| 在线观看精品| 亚洲精品一区二区三区福利| 99精品视频免费观看视频| 亚洲色图自拍| 欧美在线播放一区| 亚洲黄色成人网| 亚洲啪啪91| 亚洲午夜影视影院在线观看| 午夜精品久久久久久久99水蜜桃 | 亚洲美女黄网| 亚洲在线第一页| 久久精品国产77777蜜臀| 亚洲精选久久| 亚洲欧美欧美一区二区三区| 久久久久国产精品一区| 欧美精品久久久久久久久久| 国产精品视频网站| 在线观看亚洲视频| 9i看片成人免费高清| 欧美亚洲一区二区在线| 亚洲精品国产日韩| 亚洲欧美精品在线观看| 久久一二三区| 欧美午夜电影在线| 国产亚洲综合精品| 亚洲精品黄网在线观看| 午夜精品久久久久99热蜜桃导演| 亚洲国产成人久久综合一区| 亚洲视频导航| 久久天天综合| 久久精品国产v日韩v亚洲| 亚洲国产精品第一区二区| 在线视频一区观看| 久久狠狠亚洲综合| 欧美精品综合| 国产日韩欧美中文在线播放| 亚洲区中文字幕| 欧美亚洲综合另类| 99热精品在线观看| 久久久精品一区| 欧美日韩亚洲不卡| 伊人精品成人久久综合软件| 一区二区三区欧美成人| 小嫩嫩精品导航| 夜夜嗨av一区二区三区| 久久婷婷丁香| 国产精品乱码久久久久久| 影音先锋另类| 性欧美18~19sex高清播放| 日韩一区二区免费高清| 久久精品伊人| 欧美性淫爽ww久久久久无| 亚洲国产岛国毛片在线| 欧美亚洲一区二区在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 嫩草影视亚洲| 红桃视频国产一区| 亚洲综合日韩中文字幕v在线| 日韩视频免费大全中文字幕| 久久免费黄色| 国产欧美高清| 亚洲一区免费在线观看| 一区二区三区欧美激情| 欧美gay视频激情| 国产日韩一区二区| 亚洲视频1区| 亚洲视频成人| 欧美日本乱大交xxxxx| 亚洲国产导航| 亚洲黄色成人| 免费高清在线一区| 韩国精品在线观看| 欧美一区二区三区在线视频 | 国产精品99久久久久久www| 久久五月婷婷丁香社区| 国产伦精品一区二区三区四区免费 | 亚洲在线视频| 亚洲自拍偷拍一区| 欧美日韩喷水| 日韩手机在线导航| 日韩午夜三级在线| 欧美电影免费观看大全| 影音先锋亚洲电影| 亚洲国产精品一区| 美女日韩欧美| 18成人免费观看视频| 亚洲国产精品精华液2区45| 久久九九免费| 韩日精品视频| 亚洲第一精品久久忘忧草社区| 久久琪琪电影院| 国产综合色在线| 久久国产手机看片| 久久欧美中文字幕| 在线欧美电影| 日韩视频三区| 欧美日韩亚洲一区| 亚洲午夜精品视频| 香蕉av福利精品导航| 国产伦理一区| 久久国产精品高清| 免费国产一区二区| 亚洲激情成人网| 一二美女精品欧洲| 欧美性一区二区| 午夜精品久久久久久久| 久久精品麻豆| 在线观看日韩av电影| 亚洲伦理自拍| 欧美日韩综合在线| 亚洲欧美日本国产有色| 久久九九免费| 亚洲国产日韩在线| 亚洲系列中文字幕| 国产伦一区二区三区色一情| 亚洲电影免费在线| 欧美—级在线免费片| 在线亚洲欧美| 久久免费高清视频| 91久久线看在观草草青青| 亚洲性人人天天夜夜摸| 国产精品中文字幕欧美| 亚洲国产天堂久久综合| 欧美日韩综合视频网址| 欧美亚洲免费电影| 欧美成人激情视频免费观看| 一区二区三区福利| 久久国产精品久久国产精品| 亚洲电影毛片| 亚洲欧美日韩精品| 国内精品一区二区| 日韩视频第一页| 国产日本精品| 亚洲精品资源美女情侣酒店| 国产精品国产三级国产普通话99 | 午夜久久久久久| 伊人精品视频| 亚洲午夜视频在线观看| 国产综合自拍| 国产精品99久久久久久www| 国产亚洲成av人在线观看导航| 亚洲国产91| 国产精品久久久久久久久久免费看 | 亚洲乱码国产乱码精品精98午夜 | 久久久久久久久久看片| 99精品久久久| 老巨人导航500精品| 在线视频欧美日韩精品| 久久性天堂网| 一区二区三区视频在线| 久久亚洲精品中文字幕冲田杏梨| 日韩一区二区电影网| 久久久欧美一区二区| 一本一本a久久| 免费在线观看成人av| 亚洲欧美日韩在线| 欧美日本乱大交xxxxx| 久久精品道一区二区三区| 国产精品久久久久久久免费软件 | 亚洲视频一二区| 激情综合激情| 性视频1819p久久| 99精品99| 欧美精品一二三| 久久精品视频在线观看| 国产精品自在线| 亚洲一区在线观看视频|