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

基于VxWorks和DSP的多PCI總線設備驅動程序的研究與實現

2015-09-25 03:03:42張紅敏李鑫陳亮
科技創新導報 2015年20期

張紅敏 李鑫 陳亮

摘 要:為解決導航信號模擬源在分時系統下的實時性差、數據傳輸的時效性等問題,基于TMS320C6416的PCI接口控制模塊,研究了實時操作系統VxWorks下PCI總線設備驅動程序的開發方法。依據導航信號模擬源的結構和組成設計,通過動態加載的方式掃描和配置PCI總線設備,使得模擬源中的硬件設備可以根據需要裁剪,并很好的完成了多PCI總線設備的初始化和配置,同時為保證數據傳輸時效性,保證模擬源的穩定性,實現了DSP主模式下的DMA數據傳輸。

關鍵詞:VxWorks PCI總線 驅動程序 TMS320C6416

中圖分類號:TP31 文獻標識碼:A 文章編號:1674-098X(2015)07(b)-0044-03

Abstract:Navigation signal generator based on time-sharing opeating system has certain disadvantage, such poor real-time character and low speed of data transferring. To solve these problems, the research of developing driver for device of PCI bus is implemented. According to the design of generator, the driver uses the method of dynamic loading and searching of PCI bus device, and implements the initializing and configuring of multiple-PCI device and DMA data transferring base on the DSP maser Mode.

Key words:VxWorks;PCI Bus;Driver;TMS320C6416

導航信號模擬源模擬真實的衛星信號在空間傳播,最后到達導航終端的無線信號。用于信號產生的所有信號參數和數據都來源于算法模型計算出來的,所以,信號模擬源在工作時,存在大量的數據傳輸,同時必須按照嚴格的時序進行。在采用Windows操作系統來完成任務的分配和調度時,由于操作系統自身占有過多系統資源以及無法快速響應中斷,致使設備在大數據量的情況下,出現工作狀態不穩定的情況。VxWoks是高實時性的嵌入式系統,能夠很好的滿足信號模擬源對實時性和數據傳輸的要求,同時基于TMS320C6416的PCI控制接口使用PCI總線來實現數據的傳輸。

1 VxWorks和PCI總線接口

1.1 VxWorks

VxWoks作為高性能嵌入式實時操作系統(RTOS),具有良好的可靠性、可裁剪性、互操作性和實時性。其主要組成包括以下幾個部分:高性能的內核Wind、板級支持包(BSP)、文件系統、I/O系統、網絡工具及目標代理和實例庫。

BSP向VxWorks提供與硬件交互的基本接口,負責在加電時完成硬件的初始化,為VxWorks訪問硬件驅動程序提供支持,并在VxWorks中集成了與硬件相關的軟件和部分與硬件無關的軟件,因此,BSP與設備驅動程序密切相關。

VxWorks設備驅動程序是提供給系統直接控制下層硬件設備的一個軟件接口,應用程序必須通過驅動程序才能對硬件進行操作。BSP、設備驅動程序與VxWorks系統的關系如圖1所示。

1.2 PCI接口控制模塊結構

每個PCI設備有三種物理空間:配置空間、存儲器空間和IO空間。配置空間是一容量為256B并具有特定記錄結構或模型的地址空間。

當計算機加電時,配置軟件(一般為BIOS)掃描PCI總線,并取得設備的配置空間,以進行系統配置。為實現PCI設備的正常加載和操作,PCI設備必須實現PCI協議規定的配置空間內容,如表1所示。

2 導航信號模擬源組成

導航信號模擬源需要提供很多頻點的信號,一塊基帶板卡最多提供四個頻點,故需要多個基帶板卡來組成信號的生成部分,通過PCI總線將所有的基帶板卡以設備的形式掛接在零槽監控板卡上,由監控軟件來統一控制和管理基帶板卡,導航信號模擬源組成圖如圖2所示。

基帶板卡上的數據處理器使用TMS320C6416來完成。TMS320C6416是TI公司的低功耗定點處理器,在片內集成了支持主/從模式的PCI接口,通過該PCI總線能夠實現DSP與PCI主機的互聯,并且通過PCI接口,主機可以訪問DSP整個片內RAM、集成外設以及片外存儲器。

基于DSP的PCI總線DMA數據傳輸主要有兩種模式:一種是主模式傳輸,使用PCi卡上DSP的DMA控制器;一種是從模式傳輸使用PCI主機主板的DMA控制器。由于主板DMA控制器的DMA通道數目有限,并且主板DMA控制器從外設讀取數據需要兩次地理的操作,并且還需要插入等待狀態,所以,從模式的DMA傳輸要求一定的中斷延遲時間,并且當DMA控制器到達緩沖區的末端時,需要快捷的對他重新編程使用另外一個緩沖區。

針對設計需求,系統采用DSP主模式,并將C6416內部RAM的一部分作為數據傳輸空間,從而滿足PCI總線的高速數據傳輸。

3 PCI設備驅動設計與實現

PCI設備驅動基于VxWorks系統開發,包括用戶應用程序和PCI驅動程序,工作在同一地址空間。VxWorks是一種微內核結構,采用單一的實地址空間模式,不區分核心態和用戶態,任務間可以直接共享變量,不需要通過內核在不同的地址空間復制數據。用戶程序通過對設備文件進行文件操作,實現與驅動程序的通信。

PCI設備驅動程序實現的關鍵是如何完成硬件操作,包括設備初始化、端口的讀寫操作、中斷設置和中斷服務程序以及對內存的直接讀寫。PCI設備驅動程序一般包括三個模塊:初始化模塊、中斷處理模塊及功能模塊。

3.1 多PCI設備的加載

單個PCI設備時,只需要簡單的考慮單個設備的地址映射以及中斷使用,而在多個PCI設備驅動設計時則需要考慮不同設備在地址映射以及中斷復用時是否會出現沖突,從而出現地址錯亂、中斷混亂等異常情況,以至于系統的崩潰。所以多PCI設備的初始加載中的地址映射以及中斷復用問題必須很好的解決。

由于VxWorks中只包含了基本MMU(Memory Management Unit 內存管理單元),所以不會對PCI設備進行自動加載,需要用戶加載和配置設備。用戶可以通過靜態指定和動態查找兩種方法來配置PCI設備所占用的內存映射空間,把PCI總線上的物理資源映射成CPU的本地資源。PCI設備在VxWorks下加載步驟如下:

通過調用pciFindDevice來實現PCI總線設備的動態查找。

本信號模擬源中使用的PCI設備數目是不確定的,需要在系統啟動時才可以確認。硬件設計時使用了DSP中的PCI接口控制器,廠商ID為0x104C,設備ID為0xA106,具體實現代碼如下:

#define PCI6416_VID 0x104C

#define PCI6416_DID 0xA106

if(pciFindDevice(PCI6416_VID,PCI6416_DID,ix,&pciBus,&pciDevice,&pciFunc)!=OK) {……}

取得PCI設備的配置數據。取出各板卡基地址寄存器,每塊板卡最多有6個基地址寄存器。使用函數如下:

pciConfigInLong(pciBus,pciDevice,pciFunc,PCI_CFG_BASS_ADDRESS_0,&(MemBaseAddr[ix][0]));

配置PCI的命令字使能I/O空間、存儲器空間和總線主設備功能,并鏈接中斷服務程序。

將PCI設備的存儲器空間映射到MMU單元的內存映射表中。

PHYS_MEM_DESC sysPhysMemDesc[] =

{……

{

(void *)CPU_PCI_MEM_ADRS_L, //需要映射的虛擬邏輯地址

(void *)CPU_PCI_MEM_ADRS_P, //硬件板卡上的實際物理地址

0x2000, //內存區的大小

VM_STATE_MASK_VALID|VM_STATE_MASK_WRITEABLE

|VM_STATE_MASK_CACHEABLE, //內存管理使能掩碼

VM_STATE_VALID|VM_STATE_WRITEABLE,//內存管理狀態值

}

……

}

根據配置寄存器初始化設備。

對C6416設備的存儲器空間讀寫。

編寫中斷服務程序。

3.2 DMA方式的數據傳輸

在主模式下,數據傳輸時使用的相關寄存器包括DSP主地址寄存器(DSPMA)、PCI主地址寄存器(PCIMA)以及PCI主模式控制寄存器(PCIMC)。PCI接口控制模塊主模式結構圖如圖3所示。

從DSP向PCI從設備傳輸時,DSP將PCIMC寄存器中的START字段置為有效,,PCI接口模塊啟動主模式寫操作,由C6416的EDMA負責從源地址向寫FIFO搬移所要求的數據,一旦FIFO得到有效的數據,接口控制模塊會向外發出PCI總線請求,并將FIFO中數據向PCI從設備傳輸。當需要傳輸的所有數據都送入FIFO后,DSP內部的數據傳輸結束,通過使能PCIIEN寄存器中的MASTEROK位產生DSPINT中斷,通知DSP一次主模式的傳輸結束。主模式數據傳輸流程如圖4所示。

在數據傳輸過程中,數據傳輸的啟動和結束都通過中斷的方式通知DSP或者PCI從設備。在中斷發生時,DSP-C6416首先讀取PCI中斷源寄存器(PCIIS),判斷中斷源,并清除相應bit位。當前中斷為HOSTSW時,如果上次傳輸結束,DSP將重新啟動PCI總線的數據傳輸;MSTEROK中斷則用來標志一次傳輸的結束,此時C6416向RSTSRC寄存器中的INTREQ位寫1,對應的INTA管腳上產生中斷信號,通知PCI主機數據可用。

4 結語

該文使用WorkBench3.0開發環境,開發了實時操作系統VxWorks下的PCI設備驅動程序,可以支持多塊同類PCI設備的動態加載,同時采用有效的數據傳輸方式,保證了模擬源對數據的實時性要求。在實際使用中,導航模擬器的工作頻度為20ms,其最大可模擬信號通道數為36路。在模擬器全負載的情況下,仍可以很好的在有效時間內完成信號參數和信息數據的傳輸。

參考文獻

[1]TMS320C6000 DSP Peripheral Component Interconnect (PCI) Reference Guide. Texas Instruments Incorporated, 2004.

[2]李方慧,王飛,何佩琨.TMS320c6000系列DSP的原理與應用[M].北京:電子工業出版社,2003.

[3]周啟平,張揚.VxWorks下設備驅動程序及BSP開發指南[M].北京:中國電力出版社,2004.

[4]尹勇,李寧.PCI總線設備開發寶典[M].北京:北京航空航天大學出版社,2005.

主站蜘蛛池模板: 色婷婷丁香| 久久综合色88| 亚洲精品无码抽插日韩| 老色鬼久久亚洲AV综合| 色综合天天视频在线观看| 99热国产这里只有精品无卡顿"| 丁香综合在线| 国产SUV精品一区二区| 日韩激情成人| 91视频精品| 国产探花在线视频| 欧美一级在线看| 永久天堂网Av| 久久久久亚洲AV成人人电影软件| 成人精品视频一区二区在线| 毛片免费高清免费| 午夜视频免费一区二区在线看| 一本色道久久88亚洲综合| 欧美激情综合| 国产国模一区二区三区四区| 色综合天天操| 人妻一本久道久久综合久久鬼色| 国产亚洲精品yxsp| 一本大道东京热无码av| 日本午夜视频在线观看| 成人自拍视频在线观看| 亚欧美国产综合| 55夜色66夜色国产精品视频| 色九九视频| 青青草a国产免费观看| 国产精品嫩草影院视频| 亚洲精品你懂的| 国产视频 第一页| 少妇精品在线| 欧美日本视频在线观看| 欧美va亚洲va香蕉在线| 2020亚洲精品无码| 欧美日韩精品一区二区在线线| 亚洲精品福利视频| 国产91精品调教在线播放| 国产永久无码观看在线| 国产91小视频在线观看 | 国产精品免费入口视频| 国产免费a级片| 女同久久精品国产99国| 极品国产一区二区三区| 91青青草视频在线观看的| 亚洲国产日韩在线观看| 久久青草免费91线频观看不卡| 久久国产热| 亚洲精品视频在线观看视频| 国产高清无码麻豆精品| 国产一区二区免费播放| 国产福利观看| 99热这里只有精品2| 精品国产www| 一级毛片在线免费视频| 欧美色亚洲| 婷婷丁香在线观看| 国产成年女人特黄特色大片免费| 欧美另类精品一区二区三区| 精品欧美一区二区三区在线| 免费一级无码在线网站| 国产青青草视频| 极品尤物av美乳在线观看| 国产第一页免费浮力影院| 久久久噜噜噜| 四虎精品免费久久| 视频二区亚洲精品| 国产成人喷潮在线观看| 色亚洲激情综合精品无码视频 | 成人av手机在线观看| 欧美亚洲国产精品久久蜜芽| 亚洲成人77777| 亚洲视频无码| 中日韩一区二区三区中文免费视频| 色一情一乱一伦一区二区三区小说| 丝袜高跟美脚国产1区| 日韩国产精品无码一区二区三区| 在线亚洲精品自拍| 日韩二区三区无| 久久久亚洲国产美女国产盗摄|