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