国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

VB環(huán)境下對雙端口RAM物理讀寫的實現(xiàn)

發(fā)布時間:2010-9-20 12:14    發(fā)布者:eetech
關(guān)鍵詞: RAM , 雙端口 , 物理讀寫
雙端口RAM 內(nèi)存直接映象 高速并行傳輸 DLL動態(tài)鏈接在集散型控制系統(tǒng)中,一般將計算機或工控機用于終端圖文顯示,數(shù)據(jù)采集處理以及機對話接口等方面。計算機或工控機與外部設備需要建立數(shù)據(jù)傳輸?shù)耐ㄓ嵚?lián)系。但大量數(shù)據(jù)傳輸,靠通常的串行通訊方式進行,必須占用CPU大量的時間進行通訊。一些控制系統(tǒng)往往因為傳輸速率慢而無法實現(xiàn)實時控制,不能滿足系統(tǒng)采集和控制需要。上述問題在我們設計的汽車綜合檢測系統(tǒng)中,得到了較好的解決。系統(tǒng)中采用雙端口RAM技術(shù)設計了一塊PC總線接口的智能型高速并行通訊卡(以下簡稱通訊卡),實現(xiàn)外部數(shù)據(jù)同計算機高速并行通訊。由卡上的MCU負責分機的數(shù)據(jù)采樣,將需要傳輸?shù)臄?shù)據(jù)按系統(tǒng)協(xié)議在雙端口RAM內(nèi)任意存取,讀寫速度快、可靠性高、接口簡單,滿足了系統(tǒng)設計需要。并且實現(xiàn)了在VB語言環(huán)境下對采用內(nèi)存直接映象技術(shù)的雙端口RAM的讀寫操作,將多主CPU采用的總線仲裁方式簡單為僅僅對內(nèi)存操作,在應用計算機總線擴展技術(shù)方面具有借鑒意義。

1 系統(tǒng)描述

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

通訊卡包含了數(shù)字濾波、數(shù)據(jù)收集、傳輸?shù)裙δ埽瑢ο到y(tǒng)內(nèi)的并、串行通訊實現(xiàn)分時操作。卡上由一片MCU負責管理各個分機,通過串行通訊方式將分機采集的各種數(shù)據(jù),收集到通訊卡內(nèi),經(jīng)過判斷、篩選,將有效數(shù)據(jù)存貯到雙端口RAM的規(guī)定區(qū)域內(nèi);計算機從雙端口RAM內(nèi)將數(shù)據(jù)讀入,進行運算處理,與標準數(shù)據(jù)進行比較判斷,將結(jié)果或控制命令寫入雙端口RAM內(nèi),實現(xiàn)整個系統(tǒng)統(tǒng)一協(xié)調(diào)運行。本文主要針對通訊卡的軟、硬件設計和在VB環(huán)境下的軟件實現(xiàn),作重點的分析。

2 硬件設計

通訊卡的基本硬件設計簡圖如圖1所示。利用計算機總線做擴展卡的技術(shù)已經(jīng)廣為應用,但很多都是利用計算機提供固定的I/O端口地址進行讀寫操作,“瓶頸效應”十分明顯。在對實時性要求很高、數(shù)據(jù)傳輸量很大的場合,數(shù)據(jù)阻塞明顯,無法滿足系統(tǒng)的大量數(shù)據(jù)高速傳輸?shù)男枰1鞠到y(tǒng)利用計算機內(nèi)存直接映象技術(shù),對內(nèi)存物理地址直接操作,實時性和速度明顯改善,完全滿足本系統(tǒng)的速度要求。



2.1 MCU和雙端口RAM的選擇

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

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

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

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

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

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

3 軟件設計

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

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

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

筆者采用的方法是調(diào)用動態(tài)鏈接庫DLL。用VisualC++ 6.0編寫對內(nèi)存物理地址進行讀寫操作的DLL動態(tài)鏈接庫函數(shù),進行數(shù)據(jù)采集和發(fā)送;用Visual Basic 6.0調(diào)用DLL實現(xiàn)數(shù)據(jù)通信,從而彌補VB對底層數(shù)據(jù)操作的缺陷,使VB環(huán)境下開發(fā)數(shù)據(jù)通信系統(tǒng)軟件更為方便。

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

-asm{ mov A B
mov ……
…………
mov i A}
return i;

-asm{}是嵌入式匯編函數(shù),在Visual C++6.0中只有使用此方法才可以訪問高端內(nèi)存地睛。還要在DLL中編寫兩個函數(shù)。一個從內(nèi)存地址讀數(shù)函數(shù),一個對內(nèi)存地址寫數(shù)函數(shù)。這樣才能完成對高端內(nèi)存地址讀寫的操作,實現(xiàn)底層的數(shù)據(jù)傳輸。

(2)使用Visual Basic 6.0調(diào)用DLL動態(tài)鏈接庫函數(shù)。

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

Declare Function write% lib“C:兡?#12;C”

(ByVal localport%,ByVal value%)
Declare Function read% lib “C:兡?#12;C”
(ByVal localport%)

其中:write( )函數(shù)是向高端內(nèi)存地址寫數(shù)據(jù);
read( )函數(shù)是從高端內(nèi)存地址讀數(shù)據(jù)。

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

Option Explicit
Dim Port 1 ‘內(nèi)存地址 如:0D0000H
Dim Port 2 ‘16進制數(shù) 如:12H
Private Sub Command 1-click()
Dim Gg As Integer ‘聲明一個返回整數(shù)
Dim Salp As Integer ‘聲明一個返回整數(shù)
Port 1=Val(Text 1.Text) ‘把Text 1賦給port 1
Port 2=Val(Text 2.Text) ‘把Text 2賦給port 2
Gg="write"(port 1,port2) ‘往Port 1地址中寫Port 2
Salp="read"(port 1) ‘從Port 1地址中讀數(shù)
Text3.Text=Salp ‘在Text3中顯示
Salp
End Sub

兩個函數(shù)的調(diào)用過程如上所述,可根據(jù)編程的意圖放在任何位置。特別注意,函數(shù)地址不能與其它硬件的地址或系統(tǒng)內(nèi)存地址沖突,否則會造成計算機死機。

本文采用雙端口RAM器件設計的智能型高速并行通訊卡,在監(jiān)控軟件、硬件,以及在VB環(huán)境下對直接映象方式的高端內(nèi)存進行讀寫操作的實現(xiàn),具有通用性。尤其在自動控制領(lǐng)域設計A/D、D/A轉(zhuǎn)換、實現(xiàn)閉環(huán)控制,以及設計虛擬儀器、視頻信號數(shù)字化處理、語音處理、各種系統(tǒng)動態(tài)仿真等需要高速數(shù)據(jù)傳輸?shù)膱龊希季哂薪梃b意義。總之,智能化板卡在PC總線工業(yè)控制的應用,是今后發(fā)展的主流。
本文地址:http://m.qingdxww.cn/thread-28170-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线啊v| 伸进同桌奶罩里摸她胸作文| 亚洲视频中文字幕在线| 一级毛片a免费播放王色| 日韩在线二区| 四虎精品成人免费影视| 最新国产精品视频免费看| 久久理论片| 日本黄色片免费观看| 欧美午夜在线视频| 在线不卡一区二区三区日韩| 在线 偷窥 制服 另类| 快穿女主有名器的H纯肉黄暴拉文| 再插深点嗯好大好爽| 日本www色视频成人免费网站| 亚洲欧美日韩在线播放| 在线观看高清视频| 久久永久影院免费| 在线亚洲色拍偷拍在线视频| 日本三级韩国三级美三级91 | 亚洲成在人线久久综合| 亚洲综合伊人制服丝袜美腿| 精精国产www视频在线观看免费| 伊人久久大香线蕉综合亚洲| 欧美激情一区二区三区蜜桃视频| 一级女人18毛片免费| 2018高清国产一区二区三区| 老太脱裤子让老头玩xxxxx| 亚洲精品高清国产一线久久97| 日本一二三区高清| 天天色天天| 高清mv视频免费观看| 小SAO货边洗澡边CAO你动漫 | 亚洲日本视频在线观看| 亚洲午夜综合网| 中文字幕成人网| 欧美一级久久久久久久大| 欧美成人专区| 天天射天天做| 一级毛片在线看| 脔到她哭H粗话HWWW男男动漫|