基于VxWorks的VME從板驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)
摘要:基于VxWorks操作系統(tǒng)設(shè)計(jì)了數(shù)據(jù)采集從板的驅(qū)動(dòng)程序,程序框架上驅(qū)動(dòng)程序?qū)陌宓牟僮鞒橄鬄閷ψ址驮O(shè)備的操作,驅(qū)動(dòng)程序在內(nèi)部實(shí)現(xiàn)了數(shù)據(jù)IO操作的阻塞機(jī)制、查詢機(jī)制及信號(hào)通知機(jī)制,采用這種方式設(shè)計(jì)的驅(qū)動(dòng)程序向用戶提供了統(tǒng)一的接口,方便用戶使用,同時(shí)將硬件操作與應(yīng)用程序分開便于驅(qū)動(dòng)程序進(jìn)行擴(kuò)展;驅(qū)動(dòng)設(shè)計(jì)工作是精密環(huán)境控制系統(tǒng)的一部分,驅(qū)動(dòng)程序的設(shè)計(jì)方法可以廣泛地應(yīng)用于基于VME總線的從設(shè)備驅(qū)動(dòng)設(shè)計(jì)。
關(guān)鍵詞:VxWorks操作系統(tǒng);VME總線;設(shè)備驅(qū)動(dòng)程序;數(shù)據(jù)采集
基于VME總線搭建了精密環(huán)境控制系統(tǒng),整個(gè)系統(tǒng)中基于VxWorks的VME總線驅(qū)動(dòng)程序連接了軟件操作與VME從板的硬件通信,VxWorks操作系統(tǒng)下驅(qū)動(dòng)程序的開發(fā)是應(yīng)用VxWorks操作系統(tǒng)的關(guān)鍵因素。本文應(yīng)用通用公司的VG5-7457PowerPC嵌入式VME單板機(jī)作為主板及通用公司的VME-3122A作為數(shù)據(jù)采集從板組成數(shù)據(jù)采集系統(tǒng)。針對數(shù)據(jù)采集從板的通用特征詳細(xì)的設(shè)計(jì)了基于VG5硬件和VxWorks操作系統(tǒng)的VME數(shù)據(jù)采集從板的驅(qū)動(dòng)程序,在驅(qū)動(dòng)程序的設(shè)計(jì)過程中,特別地考慮了驅(qū)動(dòng)程序數(shù)據(jù)傳輸機(jī)制的設(shè)計(jì),采用良好傳輸機(jī)制設(shè)計(jì)的驅(qū)動(dòng)程序具有優(yōu)良的驅(qū)動(dòng)架構(gòu),便于移植及擴(kuò)展。
1 采集系統(tǒng)的系統(tǒng)結(jié)構(gòu)
1.1 采集系統(tǒng)結(jié)構(gòu)分析
采集系統(tǒng)基于VME總線實(shí)現(xiàn),系統(tǒng)是精密環(huán)境控制的重要組成部分,它的整體結(jié)構(gòu)如圖1所示。
系統(tǒng)以VME總線為整體架構(gòu),VME總線上使用VG5-7457PowerPC嵌入式VME單板機(jī)作VME總線控制器,通過VME總線控制數(shù)據(jù)采集設(shè)備(AD數(shù)據(jù)采集卡),同時(shí)將控制輸出經(jīng)過VME總線下傳到控制輸出(DA數(shù)據(jù)輸出卡),它同時(shí)通過以太網(wǎng)絡(luò)與上位機(jī)相連;數(shù)據(jù)在VME總線的可靠傳輸是系統(tǒng)實(shí)現(xiàn)功能的關(guān)鍵部分,這主要通過在VG5單板機(jī)上設(shè)計(jì)基于VxWorks操作系統(tǒng)的VME總線的驅(qū)動(dòng)來保證。
1.2 VG5主控板的結(jié)構(gòu)分析及其對VME總線驅(qū)動(dòng)的支持
驅(qū)動(dòng)程序最終運(yùn)行在VG5-7457單板機(jī)上,單板機(jī)的VME總線支持是實(shí)現(xiàn)單板機(jī)對VME總線驅(qū)動(dòng)的關(guān)鍵因素。單板機(jī)系統(tǒng)的VME總線硬件結(jié)構(gòu)如圖2所示。
單板機(jī)使用UniverseⅡVME-to-PCI總線橋芯片實(shí)現(xiàn)系統(tǒng)的VMM總線,芯片實(shí)際上完成了VME總線與PCI總線的操作的互相轉(zhuǎn)化,它同時(shí)具備多種轉(zhuǎn)換方式,首先可以完成2個(gè)總線中斷的互相轉(zhuǎn)換操作,其次可以完成通過VME總線訪問PCI總線,最后可以完成PIC總線訪問VME總線;這些轉(zhuǎn)換操作很多都是通過芯片的內(nèi)部寄存器實(shí)現(xiàn)的。由于總線橋芯片的轉(zhuǎn)換能力,使得VG5-7457單板機(jī)既可以作為VME主控板使用,又可以作為從板使用。
VxWorks操作系統(tǒng)下將VME總線地址映射為CPU的本地地址,其映射可以在相關(guān)的BSP文件中定義,設(shè)計(jì)中的映射如表1所示,將VME總線映射為CPU本地地址后,對從板的操作就轉(zhuǎn)化為于對內(nèi)存訪問操作相似的讀寫操作,使得VME總線的驅(qū)動(dòng)可以方便的實(shí)現(xiàn)。
對于操作VME總線區(qū)域的內(nèi)存空間,系統(tǒng)提供了一系列的接口函數(shù),系統(tǒng)提供的接口函數(shù)列表如表2所示。
寫內(nèi)存空間的函數(shù)使用svsOut*函數(shù)族來完成,需要提供給函數(shù)的參數(shù)是寫入的地址及寫入的數(shù)據(jù);讀內(nèi)存空間使用sysIn*函數(shù)族來完成,需要提供的參數(shù)是讀的地址,返回值是讀到的內(nèi)容。函數(shù)在VxWorks的BSP中定義,使用匯編語言的方法實(shí)現(xiàn)相關(guān)的操作。
評(píng)論