《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > VB環境下對雙端口RAM物理讀寫的實現

VB環境下對雙端口RAM物理讀寫的實現

2009-03-20
作者:孫成秀 陶振權 張憲震

  摘? 要: 介紹應用雙端口RAM芯片設計的智能型高速并行通訊卡。針對VB語言環境下,用DLL函數鏈接方式,對采用內存直接映象技術的雙端口RAM進行讀寫,實現主、分機之間數據高速并行傳輸。本技術已經成功應用在汽車綜合檢測系統中,對在其它集散型控制系統中進行高速數據傳輸同樣有益。

  關鍵詞: 雙端口RAM? 內存直接映象? 高速并行傳輸? DLL動態鏈接

?

  在集散型控制系統中,一般將計算機或工控機用于終端圖文顯示,數據采集處理以及人機對話接口等方面。計算機或工控機與外部設備需要建立數據傳輸的通訊聯系。但大量數據傳輸,靠通常的串行通訊方式進行,必然占用CPU大量的時間進行通訊。一些控制系統往往因為傳輸速率慢而無法實現實時控制,不能滿足系統采集和控制需要。上述問題在我們設計的汽車綜合檢測系統中,得到了較好的解決。系統中采用雙端口RAM技術設計了一塊PC總線接口的智能型高速并行通訊卡(以下簡稱通訊卡),實現外部數據同計算機高速并行通訊。由卡上的MCU負責分機的數據采樣,將需要傳輸的數據按系統協議在雙端口RAM內任意存取,讀寫速度快、可靠性高、接口簡單,滿足了系統設計需要。并且實現了在VB語言環境下對采用內存直接映象技術的雙端口RAM的讀寫操作,將多主CPU采用的總線仲裁方式簡化為僅僅對內存操作,在應用計算機總線擴展技術方面具有借鑒意義。

1 系統描述

  在汽車綜合檢測系統中,需要對汽車的底盤、發動機以及綜合電路等方面的信號進行采樣和判斷,其中包含大量的運算處理和汽車標準資料的對比、分析、判斷等環節。整個系統信號采樣點多,信號的形式各不相同,系統采用MCU控制方式的分機對各測量點進行數據采集和模擬控制。由于MCU沒有高效的運算功能,沒有大量的指令和數據存貯空間,更不能直觀顯示各種汽車標準數據和測量結果,若進行大量的運算、判斷、顯示,其硬件、軟件處理是一個比較棘手的問題。因此本系統采用MCU負責采集各種信號,統一由計算機負責相應的運算處理、分析、判斷,并管理汽車標準數據庫、人機對話接口、顯示測量結果和標準圖形等等,用一塊管理分機的通訊卡實現分機與主機之間數據傳輸。

  通訊卡包含了數字濾波、數據收集、傳輸等功能,對系統內的并、串行通訊實現分時操作??ㄉ嫌梢黄琈CU負責管理各個分機,通過串行通訊方式將分機采集的各種數據,收集到通訊卡內,經過判斷、篩選,將有效數據存貯到雙端口RAM的規定區域內;計算機從雙端口RAM內將數據讀入,進行運算處理,與標準數據進行比較判斷,將結果或控制命令寫入雙端口RAM內,實現整個系統統一協調運行。本文主要針對通訊卡的軟、硬件設計和在VB環境下的軟件實現,作重點的分析。

2 硬件設計

  通訊卡的基本硬件設計簡圖如圖1所示。

?

?

  利用計算機總線做擴展卡的技術已經廣為應用,但很多都是利用計算機提供固定的I/O端口地址進行讀寫操作,“瓶頸效應”十分明顯。在對實時性要求很高、數據傳輸量很大的場合,數據阻塞明顯,無法滿足系統的大量數據高速傳輸的需要。本系統利用計算機內存直接映象技術,對內存物理地址直接操作,實時性和速度明顯改善,完全滿足本系統的速度要求。

2.1 MCU和雙端口RAM的選擇

  此卡是實現計算機與數據采集的分機之間大量、快速的數據交換的中間環節。采用的MCU要求具有較強的運行速度和數據管理能力,既有雙端口RAM的接口總線,又具備同分機雙工串行通訊能力,同時考慮到系統硬件加密的必要,選擇此MCU是系統的關鍵。美國ATMEL公司出品的89C51是本系統的首選。另一方面根據本系統的需要,數據傳輸的信息量在一個令牌下,2KB的吞吐量已經滿足,因此我們采用美國IDT公司出品的雙端口RAM IDT7132,容量為2K×8bits。IDT7132帶有兩套獨立控制總線,可從兩側任意讀寫存儲器中的所有單元,片內硬件端口仲裁電路適合當兩側同時訪問同一單元時不允許處于等待狀態的89C51的操作,允許不經過外部仲裁,能經受沖突的系統進行雙機同步讀寫存儲器中的同一單元,確保了數據的準確性,簡化了通訊卡的硬件電路設計,同時為軟件設計免除了使用信號燈進行判斷操作的繁瑣過程。

2.2 雙端口RAM的地址范圍的選擇

  計算機內部高端地址中有一段保留給I/O適配卡的128KB地址空間,這段地址空間為0C0000H~0DFFFFH。利用這128KB中的一段2KB空間即可滿足IDT7132的使用,按PC總線的協議經過地址譯碼和其它控制總線選通,實現內存直接映象方式。地址范圍為:0D0000H~0D07FFH之間。另一側,MCU與IDT7132的接法只將IDT7132其中一側總線接入MCU的總線上,其接法同普通RAM沒有區別,設置地址范圍在8000H~87FFH之間。

  按工業控制標準實行全地址線譯碼方式,確保全地址空間的每一個存儲單元的地址在總線上唯一。

2.3 對雙端口RAM訪問的特殊情況處理

  IDT7132兩側的BUSY線分別接到MCU的INT0中斷上和PC總線的A10腳(IO-CH-RDY)上,作為MCU和計算機同時讀寫IDT7132的同一個地址單元時的“忙閑”狀態線。當兩側訪問不同的地址單元時,BUSY線無效,兩側操作互不影響。當兩側“幾乎同時”訪問同一個單元時,按IDT7132的總線仲裁邏輯,對兩側的片選信號和地址信號之一到達時間間隔只要大于5ns,就能對先到達的一側提供讀寫通道,保證數據讀寫的真實性。同時將另一側的BUSY線置低,為MCU或計算機提供中斷或等待信號。眾所周知,89C51不具備插入等待周期延時操作的能力。當MCU一側先行操作時,計算機一側的BUSY線有效,PC總線上的IO-CH-RDY狀態線被拉低,命令計算機CPU插入等待周期,延時等待MCU一側完成讀寫操作后,再進行讀寫操作。當計算機一側占據IDT7132的一個地址單元時,MCU一側再操作該單元,MCU 讀寫的數據無效。我們采用了判斷標志位的方式解決此問題。當對應的BUSY線變低INT0中斷有效時,MCU完成該條讀寫指令后立即進入中斷,置標志位,中斷返回后,即執行查詢標志位的指令,判斷此次操作是否有效。未成功,重復操作,直致讀寫成功。

3 軟件設計

  整個系統的全部軟件共三部分,每一部分的設計側重點不同。計算機方面軟件實現的功能包括:用戶人機對話接口、汽車技術資料庫的管理和擴充、底層全部數據傳輸、運算處理、零點校正設定、實時監控操作、各分機的模擬信號線性化處理、大量圖片資料的處理與調用等等。通訊卡的軟件設計包括:對各個分機的管理、數據收集分類整理、篩選判斷、與計算機進行有效數據傳輸等等。分機的軟件包括數據采集和模擬控制等部分。要求數據采集準確、一致。實際應用中采用數據濾波、指令冗余、自診斷以及現場斷點返回等抗干擾技術。

  全部軟件涉及的編程語言共三種。分機和通訊卡的軟件設計采用匯編語言,計算機方面采用Visual? Basic 6.0、Visual C++ 6.0兩種語言,把Visual Basic 6.0作為系統設計的主要語言。分機方面的軟件這里不作介紹,本文主要針對在通訊卡上以及在Visual Basic 6.0環境下對雙端口RAM的操作軟件設計作詳細介紹。

????Visual Basic 6.0不具備對計算機底層地址操作的功能,不如Visual C++? 6.0、Delphi等。特別在本系統中采用的高速并行通信方式,對內存物理地址讀寫操作的頻率很高,按常規應改用其它語言。但系統其它方面的工作,不是其它語言所能替代的,所以必須將VB語言環境下不能對底層地址讀寫操作的問題加以解決。經過實驗,通過如下方法實現。

  筆者采用的方法是調用動態鏈接庫DLL。用Visual C++ 6.0編寫對內存物理地址進行讀寫操作的DLL動態鏈接庫函數,進行數據采集和發送;用Visual? Basic 6.0調用DLL實現數據通信,從而彌補VB對底層數據操作的缺陷,使VB環境下開發數據通信系統軟件更為方便。

  (1)首先使用Visual C++ 6.0創建一個MFC? Appwizard dll項目,這樣就可以在DLL中編寫程序。因為我們要對直接映象在高端內存范圍內的地址進行操作,所以在編寫程序時,要使用如下方法:

????—asm{ mov A? B

?????????? mov ......

?????????? ..........

?????????? mov i A}

???? ???? return? i;

????—asm{ }是嵌入式匯編函數,在Visual ?C++ 6.0中只有使用此方法才可以訪問高端內存地址。還要在DLL中編寫兩個函數:

一個從內存地址讀數函數

  一個對內存地址寫數函數。

  這樣才能完成對高端內存地址讀寫的操作,實現底層的數據傳輸。

  (2) 使用Visual? Basic 6.0調用DLL動態鏈接庫函數。

  第一步:運行VB6.0時,新建一個工程項目,在項目中添加模塊,在模塊中聲明兩個API函數:

  Declare Function write% lib“C:***.dll”

?????????????? (ByVal? localport%, ByVal value%)

  Declare Function read% lib “C:***.dll”

?????????????? (ByVal localport%)

  其中:write(?? )函數是向高端內存地址寫數據

???????? read(? )函數是從高端內存地址讀數據

  第二步:在窗體中放入三個文本框(Text1,Text2,Text3),一個命令按扭(Command1),就可以在代碼窗口中編寫代碼:

Option Explicit

  Dim Port1??????? ????? ‘內存地址 如: 0D0000H

  Dim Port2???????? ???? ‘16進制數 如:12H

  Private Sub Command1__click()

????????? Dim Gg As Integer??????? ‘聲明一個返回整數

????????? Dim Salp As Integer????? ‘聲明一個返回整數

????????? Port1=Val(Text1.Text)??? ‘把Text1賦給port1

????????? Port2=Val(Text2.Text) ? ‘把Text2賦給port2

????????? Gg=write(port1,port2)?? ‘往Port1地址中寫port2

????????? Salp=read(port1)???????? ‘從Port1地址中讀數

????????? Text3.Text=Salp????????? ‘在Text3中顯示

salp

????End Sub

  兩個函數的調用過程如上所述,可根據編程的意圖放在任何位置。特別注意,函數地址不能與其它硬件的地址或系統內存地址沖突,否則會造成計算機死機。

  本文采用雙端口RAM器件設計的智能型高速并行通訊卡,在監控軟件、硬件,以及在VB環境下對直接映象方式的高端內存進行讀寫操作的實現,具有通用性。尤其在自動控制領域設計A/D、D/A轉換、實現閉環控制,以及設計虛擬儀器、視頻信號數字化處理、語音處理、各種系統動態仿真等需要高速數據傳輸的場合,都具有借鑒意義??傊?智能化板卡在PC總線工業控制的應用,是今后發展的主流。

?

參考文獻

1 鄧 力.同步多通道數據輸出和輸入智能接口電路.電子技術應用,1999;25(6)

2 尤一鳴.單片機總線擴展技術.北京:北京航空航天大學出版社,1993

3 劉京祖.實用接口技術.北京:北京工業大學出版社,1999

4 凌澄主編.PC總線工業控制系統精粹.北京:清華大學出版社(美)Peter Norton,Haroid,Phyllis Davis.Visual Basic

編程指導.北京:清華大學出版社,1998
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚久久调教视频| 一区二区欧美精品| 一区三区视频| 久久久久一区二区三区四区| 欧美日韩一区二区三| 亚洲精品乱码久久久久| 久久大逼视频| 一区二区三区欧美视频| 国产精品久久久久永久免费观看| 亚洲看片网站| 国产精品一区=区| 欧美日本二区| 牛夜精品久久久久久久99黑人| 国产欧美日韩在线播放| 欧美三级乱人伦电影| 亚洲精品国产拍免费91在线| 日韩一级精品视频在线观看| 亚洲国产精品va在线观看黑人| 欧美大成色www永久网站婷| 国产亚洲精品7777| 欧美有码在线视频| 99re热这里只有精品视频| 激情亚洲一区二区三区四区| 国产精品久久久久久久久久免费看| 亚洲第一狼人社区| 悠悠资源网亚洲青| 日韩一级视频免费观看在线| 国产欧美va欧美不卡在线| 老牛嫩草一区二区三区日本| 亚洲欧美日韩精品久久久久| 亚洲在线视频网站| 香蕉久久夜色精品国产使用方法| 99riav久久精品riav| 欧美二区视频| 欧美华人在线视频| 亚洲国产精品久久精品怡红院| 欧美日韩极品在线观看一区| 欧美视频在线视频| 国产精品免费电影| 一区久久精品| 欧美性一区二区| 亚洲一区二区三区免费视频| 免费观看亚洲视频大全| 久久精品在线免费观看| 国产在线观看精品一区二区三区| 亚洲综合日韩| 老**午夜毛片一区二区三区| 久久av资源网站| 欧美国产视频日韩| 亚洲精品女人| 亚洲欧美日韩另类精品一区二区三区| 国产伦精品一区二区三区| 久久精品免费播放| 欧美大秀在线观看| 亚洲一区二区三区中文字幕| 午夜精品免费视频| 一区二区免费看| 欧美另类在线播放| 欧美aⅴ99久久黑人专区| 欧美日韩影院| 欧美日韩 国产精品| 亚洲福利在线看| 欧美伦理a级免费电影| 亚洲一区二区三区在线视频| 欧美不卡一卡二卡免费版| 亚洲免费精彩视频| 亚洲欧洲久久| 久久国产精品一区二区三区四区| 91久久极品少妇xxxxⅹ软件| 国产综合色精品一区二区三区| 欧美日韩一区二区三区在线看| 国产精品拍天天在线| 亚洲第一视频网站| 亚洲国产欧美一区二区三区同亚洲| 性欧美videos另类喷潮| 久久综合色播五月| 亚洲一区视频在线观看视频| 欧美美女bb生活片| 中文日韩在线视频| 国产麻豆一精品一av一免费| 国产精品国产三级国产| 亚洲免费中文| 久久国内精品视频| 一二美女精品欧洲| 亚洲片区在线| 在线观看国产精品淫| 亚洲国产精品一区二区三区| 欧美高清日韩| 久久精品盗摄| 欧美一区二区精品久久911| 久久嫩草精品久久久精品一| 欧美日韩精品免费看| 在线日韩成人| 欧美视频在线观看一区| 午夜电影亚洲| 国产综合18久久久久久| 欧美一区中文字幕| 精品动漫3d一区二区三区免费版| 国产精品男人爽免费视频1| 久久久国产精彩视频美女艺术照福利| 亚洲美女淫视频| 亚洲午夜精品福利| 亚洲动漫精品| 欧美三级视频在线观看| 欧美三级中文字幕在线观看| 一本久久a久久免费精品不卡| 久久精品91久久香蕉加勒比| 亚洲国产精品精华液网站| 蜜桃久久精品一区二区| 亚洲欧美日韩国产| 女女同性精品视频| 久久九九精品| 欧美三级电影精品| 一区二区在线视频播放| 久久精品人人做人人综合| 国产精品久久久久久五月尺| 久久婷婷综合激情| 久久青青草原一区二区| 欧美精品一区二区三区四区| 久久只有精品| 欧美激情精品久久久久久久变态| 91久久精品美女| 久久精品噜噜噜成人av农村| 国产欧美精品日韩区二区麻豆天美| 欧美伦理在线观看| 欧美电影免费| 狠狠爱www人成狠狠爱综合网| 久久人91精品久久久久久不卡| 1024欧美极品| 亚洲一区高清| 久久激情五月婷婷| 国内精品伊人久久久久av影院| 老司机午夜精品| 亚洲国产专区校园欧美| 激情校园亚洲| 国产欧美大片| 国产精品久久久| 久久久精品tv| 欧美国产亚洲精品久久久8v| 激情欧美国产欧美| 亚洲国产精品一区二区www在线| 亚洲欧美成人综合| 国内精品伊人久久久久av一坑| 欧美 日韩 国产精品免费观看| 亚洲电影第三页| 国产精品免费一区豆花| 一本一本大道香蕉久在线精品| 国产精品欧美一区二区三区奶水| 一区二区三区高清在线观看| 欧美xx视频| 欧美一二三视频| 欧美黄在线观看| 欧美三区美女| 永久域名在线精品| 国产日韩欧美一区二区| 欧美日韩免费在线视频| 亚洲二区精品| 羞羞答答国产精品www一本| 午夜精品久久久久久久99热浪潮| 欧美精品福利| 欧美成人精品| 国产精品v日韩精品v欧美精品网站| 欧美在线视频在线播放完整版免费观看| 久久久久久久网| 欧美视频网址| 亚洲视频一区在线观看| 欧美国内亚洲| 欧美中文字幕不卡| 国产精品理论片在线观看| 欧美激情一二区| 亚洲一区二区三区在线观看视频| 久久成人精品电影| 国产精品日韩专区| 欧美日韩在线精品| 在线日韩av永久免费观看| 国产精品自在在线| 99精品99| 国产精品尤物| 一区二区不卡在线视频 午夜欧美不卡'| 欧美一区二区三区在线播放| 亚洲欧洲日产国码二区| 亚洲欧美日韩国产精品| 欧美系列电影免费观看| 亚洲激情自拍| 一区二区三区久久久| 国产欧美一区二区三区久久人妖| 欧美尤物一区| 狠狠色狠狠色综合日日91app| 99国产精品99久久久久久| 亚洲午夜在线视频| 午夜在线成人av| 亚洲国产aⅴ天堂久久| 国产日韩欧美成人| 欧美精品v国产精品v日韩精品| 亚洲一区二区三区四区中文| 亚洲精选在线观看| 国内在线观看一区二区三区| 国产日韩一区欧美| 亚洲韩国青草视频| 国产精品有限公司| 欧美日韩精品免费观看| 亚洲日本中文字幕区| 亚洲人成在线播放网站岛国| 久久精品综合| 夜夜狂射影院欧美极品| 亚洲高清免费在线| 亚洲激情网址| 亚洲国产一区在线| 国产偷国产偷精品高清尤物| 妖精成人www高清在线观看| 亚洲少妇最新在线视频| 一区二区三区在线不卡| 每日更新成人在线视频| 久久不见久久见免费视频1| 伊人春色精品| 国产精品三级视频| 久久国产精品毛片| 久久成人免费电影| 亚洲欧美一级二级三级| 国产一区在线观看视频| 欧美日韩国语| 欧美视频一区二区三区…| 欧美亚洲一区二区在线| 中文国产成人精品久久一| 久久成人精品| 国产伦精品一区二区三区视频黑人| 亚洲午夜久久久久久尤物| 欧美日韩国产片| 亚洲高清色综合| 欧美mv日韩mv亚洲| 久久婷婷国产综合精品青草| 99视频+国产日韩欧美| 牛人盗摄一区二区三区视频| 宅男噜噜噜66一区二区| 欧美亚洲日本国产| 国产精品女人毛片| 亚洲精品免费观看| 久久久久久久综合日本| 老鸭窝91久久精品色噜噜导演| 国产精品久久一区主播| 国产精品家庭影院| 国产精品色午夜在线观看| 先锋影音网一区二区| 欧美在线观看一区二区| 99精品国产热久久91蜜凸| 久久精品在线播放| 国产日韩欧美精品在线| 久久综合精品国产一区二区三区| 国产日韩精品视频一区二区三区| 亚洲视频福利| 欧美日韩激情小视频| 免费亚洲电影| 亚洲一区日韩在线| 久热这里只精品99re8久| 在线精品在线| 香蕉精品999视频一区二区| 欧美华人在线视频| 亚洲区国产区| 99精品视频网| 99pao成人国产永久免费视频| 久久精品人人做人人爽电影蜜月| 亚洲免费av网站| 欧美精品在欧美一区二区少妇| 欧美色欧美亚洲高清在线视频| 国产日韩亚洲欧美精品| 国产精品永久免费视频| 亚洲自拍偷拍麻豆| 久久国产精品99国产| 欧美国产日韩一区二区| 宅男在线国产精品| 午夜一区二区三区不卡视频| 国产精品免费观看在线| 欧美一激情一区二区三区| 136国产福利精品导航| 久久都是精品| 亚洲激情视频在线| 久久久亚洲欧洲日产国码αv| 日韩网站免费观看| 欧美在线看片a免费观看| 蜜桃久久精品一区二区| 亚洲裸体俱乐部裸体舞表演av| 国产欧美三级| 国产精品久久久久久久久动漫| 欧美日韩一区二区在线| 午夜精品视频网站| 国产一区二区三区四区在线观看| 国内揄拍国内精品少妇国语| 亚洲欧美日韩国产综合在线| 国产精品亚洲欧美| 亚洲国产精品成人va在线观看| 久久国产精品一区二区三区四区| 亚洲无线观看| 日韩亚洲欧美成人一区| 国产伦精品一区二区三区高清版| 欧美激情按摩在线| 国产乱码精品一区二区三区五月婷| 免费日韩精品中文字幕视频在线| 久久激情视频免费观看| 亚洲欧洲日本mm| 欧美噜噜久久久xxx| 欧美在线视频全部完| 欧美日韩中国免费专区在线看| 一区二区三区在线免费播放| 午夜精品国产| 久久久国产精品亚洲一区| 一区二区亚洲| 蜜桃av一区二区三区| 欧美久久久久| 亚洲日本一区二区三区| 欧美一区二区三区四区高清| 蜜臀av性久久久久蜜臀aⅴ| 亚洲欧美日韩精品久久久| 久久久久久自在自线| 国产一区二区三区黄视频| 午夜精品婷婷| 欧美日韩在线不卡| 在线精品视频在线观看高清| 老鸭窝亚洲一区二区三区| 久久久噜噜噜久久人人看| 欧美日韩另类字幕中文| 欧美精品一区在线观看| 国产日韩欧美一区在线| 午夜亚洲视频| 亚洲一区二区在线播放| 国产精品高潮粉嫩av| 国产一区再线| 亚洲乱码视频| 一本色道久久综合狠狠躁篇的优点|