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

基于MPC8270的SPI驅動設計

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

張曼 緱麗敏

摘 要:介紹了嵌入式PowerPC處理器MPC8270的體系架構和串行外設接口(SPI)控制器的工作原理。基于VxWorks和MPC8270嵌入式系統開發平臺,詳細介紹了MPC8270處理器芯片自帶的SPI驅動程序的設計實現過程,描述了SPI的初始化、中斷處理以及數據發送、數據接收等關鍵技術?;贛PC8270的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-),女,陜西西安人,碩士,工程師,研究方向為嵌入式計算機設計等。

主站蜘蛛池模板: 成人在线视频一区| 色天天综合| 亚洲精品第五页| 久久99精品久久久久纯品| 欧美a级在线| 在线精品视频成人网| 亚洲欧美日韩高清综合678| 国产91高跟丝袜| 都市激情亚洲综合久久| 亚洲视频免费播放| 国产一区二区三区日韩精品| 亚洲中文字幕精品| 动漫精品中文字幕无码| www.99在线观看| 97超爽成人免费视频在线播放| 人妻丰满熟妇αv无码| 国产成人综合欧美精品久久| 国产浮力第一页永久地址| 亚洲品质国产精品无码| 国产高潮视频在线观看| 国产丰满大乳无码免费播放| 欧美成人怡春院在线激情| 国产成人免费手机在线观看视频| 欧美在线综合视频| 欧美全免费aaaaaa特黄在线| 国产va免费精品| 丁香六月激情综合| 国产va在线| 3344在线观看无码| 国产精品一区二区在线播放| 国内老司机精品视频在线播出| 91福利在线看| 青青热久免费精品视频6| 国产亚洲欧美另类一区二区| 欧美午夜在线观看| 玖玖精品在线| 亚洲色图欧美激情| 精品撒尿视频一区二区三区| 在线观看热码亚洲av每日更新| 亚洲成人网在线播放| 美女毛片在线| 中文字幕乱码二三区免费| 亚洲最新地址| 国模粉嫩小泬视频在线观看| 青青草原国产精品啪啪视频| 久久免费视频6| 天天综合网色| 欧美日本不卡| 亚洲无码免费黄色网址| 青青青视频蜜桃一区二区| 人妻精品久久久无码区色视| 亚洲欧美国产高清va在线播放| 99国产精品免费观看视频| 狠狠色丁香婷婷| 亚洲无码日韩一区| 亚洲欧美天堂网| 在线播放91| 日韩精品免费在线视频| 欧美一级大片在线观看| 国产传媒一区二区三区四区五区| 国产一级在线观看www色| 国产粉嫩粉嫩的18在线播放91| 狠狠色婷婷丁香综合久久韩国| 一级毛片在线播放免费观看| 亚洲精品中文字幕午夜| 91成人精品视频| 日韩成人午夜| 国产美女精品人人做人人爽| 韩日免费小视频| 久久久黄色片| 亚洲天堂自拍| 国产制服丝袜91在线| 国产在线观看第二页| 国产精品专区第一页在线观看| 国产成人精品免费av| 少妇被粗大的猛烈进出免费视频| 91福利在线看| 中文字幕人妻无码系列第三区| 99手机在线视频| 国产精品免费电影| 国产v精品成人免费视频71pao| 亚洲视屏在线观看|