VB環(huán)境下對雙端口RAM物理讀寫的實現(xiàn)
雙端口RAM 內存直接映象 高速并行傳輸 DLL動態(tài)鏈接在集散型控制系統(tǒng)中,一般將計算機或工控機用于終端圖文顯示,數據采集處理以及機對話接口等方面。計算機或工控機與外部設備需要建立數據傳輸的通訊聯(lián)系。但大量數據傳輸,靠通常的串行通訊方式進行,必須占用CPU大量的時間進行通訊。一些控制系統(tǒng)往往因為傳輸速率慢而無法實現(xiàn)實時控制,不能滿足系統(tǒng)采集和控制需要。上述問題在我們設計的汽車綜合檢測系統(tǒng)中,得到了較好的解決。系統(tǒng)中采用雙端口RAM技術設計了一塊PC總線接口的智能型高速并行通訊卡(以下簡稱通訊卡),實現(xiàn)外部數據同計算機高速并行通訊。由卡上的MCU負責分機的數據采樣,將需要傳輸的數據按系統(tǒng)協(xié)議在雙端口RAM內任意存取,讀寫速度快、可靠性高、接口簡單,滿足了系統(tǒng)設計需要。并且實現(xiàn)了在VB語言環(huán)境下對采用內存直接映象技術的雙端口RAM的讀寫操作,將多主CPU采用的總線仲裁方式簡單為僅僅對內存操作,在應用計算機總線擴展技術方面具有借鑒意義。
1 系統(tǒng)描述
在汽車綜合檢測系統(tǒng)中,需要對汽車的底盤、發(fā)動機以及綜合電路等方面的信號進行采樣和判斷,其中包含大量的運算處理和汽車標準為資料的對比、分析、判斷等環(huán)節(jié)。整個系統(tǒng)信號采樣點多,信號的形式各不相同,系統(tǒng)采用MCU控制方式的分機對各測量點進行數據采集和模擬控制。由于MCU沒有高效的運算功能,沒有大量的指令和數據存貯空間,更不能直觀顯示各種汽車標準數據和測量結果,若進行大量的運算、判斷、顯示,其硬件、軟件處理一個比較棘手的問題。因此本系統(tǒng)采用MCU負責采集各種信號,統(tǒng)一由計算機負責相應的運算處理、分析、判斷,并管理汽車標準數據庫、人機對話接口、顯示測量結果和標準圖形等等,用一塊管理分機的通訊卡實現(xiàn)分機與主機之間數據傳輸。
通訊卡包含了數字濾波、數據收集、傳輸等功能,對系統(tǒng)內的并、串行通訊實現(xiàn)分時操作。卡上由一片MCU負責管理各個分機,通過串行通訊方式將分機采集的各種數據,收集到通訊卡內,經過判斷、篩選,將有效數據存貯到雙端口RAM的規(guī)定區(qū)域內;計算機從雙端口RAM內將數據讀入,進行運算處理,與標準數據進行比較判斷,將結果或控制命令寫入雙端口RAM內,實現(xiàn)整個系統(tǒng)統(tǒng)一協(xié)調運行。本文主要針對通訊卡的軟、硬件設計和在VB環(huán)境下的軟件實現(xiàn),作重點的分析。
2 硬件設計
通訊卡的基本硬件設計簡圖如圖1所示。利用計算機總線做擴展卡的技術已經廣為應用,但很多都是利用計算機提供固定的I/O端口地址進行讀寫操作,“瓶頸效應”十分明顯。在對實時性要求很高、數據傳輸量很大的場合,數據阻塞明顯,無法滿足系統(tǒng)的大量數據高速傳輸的需要。本系統(tǒng)利用計算機內存直接映象技術,對內存物理地址直接操作,實時性和速度明顯改善,完全滿足本系統(tǒng)的速度要求。
2.1 MCU和雙端口RAM的選擇
此卡是實現(xiàn)計算機與數據采集的分機之間大量、快速的數據交換的中間環(huán)節(jié)。采用的MCU要求具有較喲的運行速度和數據管理能力,既有雙端口RAM的接口總線,又具備同分機雙工串行通訊能力,同時考慮到系統(tǒng)硬件加密的必要,選擇此MCU是系統(tǒng)的關鍵。美ATMEL公司出品的89C51是本系統(tǒng)的首選。另一方面根據本系統(tǒng)的需要,數據傳輸的信息量在一個令牌下,2KB的吞吐量已經滿足,因此我們采用美國IDT公司出品的雙端口EAM IDT7132,容量為2K
評論