999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MPC8270的SPI驅動設計

2017-05-30 16:22:29張曼緱麗敏
科技風 2017年9期

張曼 緱麗敏

摘 要:介紹了嵌入式PowerPC處理器MPC8270的體系架構和串行外設接口(SPI)控制器的工作原理。基于VxWorks和MPC8270嵌入式系統開發平臺,詳細介紹了MPC8270處理器芯片自帶的SPI驅動程序的設計實現過程,描述了SPI的初始化、中斷處理以及數據發送、數據接收等關鍵技術。基于MPC8270的SPI設計具有較強的實用性。

關鍵詞:MPC8270;SPI;VxWorks操作系統;串行外設接口

MPC8270是廣泛應用于通信和網絡系統的一款通用處理器,具有強大的接口能力,其中自帶的SPI接口可以應用于EEPROM、FLASH、實時時鐘、AD轉換器,還有數字信號處理器和數字信號解碼器之間。本文在基于VxWorks操作系統的嵌入式處理器模塊上實現了通過SPI與AD轉換器通信,采集AD信號的功能。

本文基于VxWorks操作系統的SPI驅動開發,使得MPC8270上的SPI做為主設備,與SPI從設備AD7940進行AD模擬量數據采集。

1 MPC8270處理器SPI硬件功能模型

MPC8270處理器的SPI硬件功能模型如圖1所示:

從硬件功能模型可以看出,SPI硬件接口通過配置的外部復用管腳收發SPI信號,通過SPI BRG時鐘從MPC8270處理器獲取時鐘,當接收數據時,交換寄存器將從SPI總線上將接收的數據獲取出來,放入接收寄存器中,當發送數據時,將發送數據寄存器中的數放入交換寄存器中,通過交換寄存器送給SPI總線,發送出去。發送寄存器和接收寄存器通過MPC8270處理器內的外部總線連接到通訊處理器內核(CP)中。SPI總線的工作狀態包括發送接收數據長度、時鐘相位和極性設置等通過SPI模式寄存器進行設置,SPI模式寄存器通過60x總線與CPU內核連接。

2 SPI驅動的設計與實現

2.1 SPI初始化

SPI初始化的具體步驟如下:

1)分配管腳,配置PD16、PD17、PD18、PD19管腳對應的PPAR寄存器對應位為1,PDIR寄存器對應位為0,PSOR對應位為1。

2)分配并初始化SPI操作所需的內存空間。Internal data ram memory map定義了內部RAM空間,SPI parameter ram 的參數定義在這部分空間內,接收和發送BD的數據結構也定義在這部分空間內,而BD的buffer pointer不定義在這部分空間內,使用的memory空間。本項目中SPI parameter ram對應的internal Data Ram地址為0xF00089FC,在此地址上配置SPI parameter ram對應的地址為0xf0000100,接收緩存描述符(Receive Buffer Descriptor,RxBD)表的基地址和指針配置地址為0xf0000140,發送緩存描述符(Transmit Buffer Descriptor,TxBD)表的基地址和指針配置地址為0xf0000148。BD的個數 為1,接收緩存描述符配置的buffer pointer大小為32字節,發送緩存描述符配置的buffer pointer大小為32字節。

3)初始化SPI模式配置寄存器。SPI模式配置寄存器會配置SPI波特率、SPI傳輸數據長度、SPI主/從模式、SPI數據方向(按照從高字節到低字節,或者低字節到高字節順序發送)

4)初始化接收發送BD。初始化接收和發送BD時,需要將最后一個BD描述符的控制狀態字設置為0x2000表示這是BD table中的最后一個BD。

5)初始化SPI parameter ram。在初始化SPI parameter ram時,需要將接收BD基地址和指針設置為0xf0000140,再將發送BD基地址和指針設置為0xf0000148。

6)設置SPI Event Register和SPI Mask Register,清中斷狀態寄存器。

7)設置SPI mode 寄存器,使能SPI操作。

2.2 SPI的接收處理實現

SPI的接收處理是首先初始化RxBD和TxBD,雖然是接收操作,但是對于MPC8270 SPI來說接收數據的同時,會發送數據;發送數據和接收數據是在一個時鐘周期不同的沿完成的,因此,接收數據時也要初始化發送BD。設置接收BD的控制狀態字為READY,發送BD的控制狀態字為EMPTY。然后,設置SPISEL信號為零;之后,設置SPI mode寄存器為發送數據開始。

通過查詢SPI Event寄存器和SPI Mask寄存器判斷接收是否結束,并查詢接收緩沖區是否正確。如果接收正確設置SPISEL信號為1,并從接收BD中讀取有效數據。如果出錯則返回錯誤。

SPI接收處理實現如下。

2.3 SPI的發送處理實現

SPI的發送處理是首先初始化RxBD和TxBD,將需要發送的數據拷貝到發送BD的buffer中,設置發送BD的控制狀態字為EMPTY,接收BD的控制狀態字為READY。然后,設置SPISEL信號為零;之后,設置SPI mode寄存器為發送數據開始。

通過查詢SPI Event寄存器和SPI Mask寄存器判斷發送是否結束,并查詢發送數據是否正確。如果發送正確設置SPISEL信號為1。如果出錯則返回錯誤。

SPI發送實現處理實現如下。

2.4 中斷處理

MPC8270 SPI在連續收發數據時,每完成一次發送或者接收數據后,都需要清中斷狀態標志寄存器SPI Event寄存器和SPI Mask寄存器,否則連續傳輸時,會出現錯誤。

3 性能測試結果分析

通過測試設備對SPI進行測試,在25M波特率下,連續收發數據3600s,收發數據正確,丟包率為0。在12.5M波特率下,連續收發數據3600s,收發數據正確,丟包率為0。在6.25M波特率下,連續收發數據3600s,收發數據正常,丟包率為0。通過長時間的數據收發測試,驗證了SPI驅動程序的穩定性和可靠性。

4 結語

通過性能測試說明,利用低功耗,通訊處理能力強的MPC8270的SPI接口,可以比較容易的實現SPI通訊處理。本文介紹了MPC8270內部的SPI的通訊原理及驅動程序設計方法,對其他的設計應用有一定的借鑒作用。

參考文獻:

[1] Freescale.MPC8280Power QUICCII Family Reference Manual[EB/OL].[2013-03-18].http://www.freescale.com.

[2] Freescale.PowerQUICCⅡ Family Hardware Specifications[EB/OL].[2013-03-25].http://www.freescale.com.

作者簡介:

張曼(1982-),女,陜西西安人,碩士,工程師,嵌入式計算機軟硬件開發;

緱麗敏(1986-),女,陜西西安人,碩士,工程師,研究方向為嵌入式計算機設計等。

主站蜘蛛池模板: 美女无遮挡免费网站| 国产在线一区视频| 人妻丰满熟妇AV无码区| 99一级毛片| 国产成人精品一区二区三在线观看| 久青草免费在线视频| 亚洲天堂成人在线观看| a天堂视频| 久久久久九九精品影院| 人妻91无码色偷偷色噜噜噜| 欧美高清三区| 91综合色区亚洲熟妇p| 91精品啪在线观看国产60岁| 日韩无码视频播放| 国产成人午夜福利免费无码r| 国产精品永久不卡免费视频| 成人在线欧美| AV无码一区二区三区四区| 国产精品入口麻豆| 最新国产高清在线| 91福利免费| 色婷婷视频在线| 99久久精品久久久久久婷婷| 九九热精品视频在线| 国产精品护士| 四虎成人精品| 99热这里只有精品免费| 欧美激情伊人| 国内嫩模私拍精品视频| 美女扒开下面流白浆在线试听| 日韩精品一区二区深田咏美 | 台湾AV国片精品女同性| 亚洲日韩每日更新| 国内黄色精品| 精品国产Av电影无码久久久| 浮力影院国产第一页| 国产精品深爱在线| 中文字幕丝袜一区二区| 亚洲中文久久精品无玛| 国产精品视频3p| 久久综合色88| 国产精品自在拍首页视频8| 在线观看国产精品第一区免费| 久久精品电影| 中国精品久久| 欧美精品在线观看视频| www.国产福利| 免费Aⅴ片在线观看蜜芽Tⅴ| 91激情视频| 国产精品欧美激情| 日本色综合网| 一级毛片在线播放| 久久伊人久久亚洲综合| 啪啪啪亚洲无码| 免费a级毛片视频| 极品国产在线| 一本大道东京热无码av| 国产视频一二三区| 国产成人综合久久精品尤物| 日本一区高清| 日本福利视频网站| 国精品91人妻无码一区二区三区| 国产香蕉国产精品偷在线观看| 中文字幕乱码中文乱码51精品| 制服丝袜在线视频香蕉| 日韩久久精品无码aV| 久久www视频| 亚洲成a人在线观看| 特级欧美视频aaaaaa| 国产制服丝袜无码视频| 亚洲二三区| 精品视频免费在线| 制服丝袜 91视频| 9啪在线视频| 欧美成人一区午夜福利在线| 亚洲综合婷婷激情| 波多野结衣无码AV在线| 国产成人无码久久久久毛片| 国产小视频a在线观看| 熟女成人国产精品视频| 成人一级免费视频| 色综合久久久久8天国|