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