使用IEEE-488總線實現(xiàn)數(shù)據(jù)采集系統(tǒng)與PC機的通信
單片機數(shù)據(jù)采集系統(tǒng),由于具有體積小、實時性好、編程靈活等優(yōu)點,在儀器儀表、自動測試及工業(yè)控制等領域中得到越來越廣泛的應用。同時單個單片機系統(tǒng)接口的標準化設計也顯得越來越重要,為了能夠充分利用微機的軟、硬件資源,帶有與微機通信接口的單片機系統(tǒng)已經(jīng)成為一種發(fā)展趨勢。IEEE-488總線是國際公認的通用標準接口總線,當儀器配備了IEEE-488標準總線后,就可像搭積木一樣任意組成所要求的測試系統(tǒng)。本文介紹了使用IEEE-488總線實現(xiàn)8031單片機數(shù)據(jù)采集系統(tǒng)與PC機通信的硬件構成原理及軟件設計。
1IEEE-488總線簡介
儀器設備接口的標準化,最早是由美國惠普(HP)公司倡導實施的,叫做HP-IB,由于其良好的接口性能,很快得到廣泛應用,被美國電氣與電子工程師學會命名為IEEE-488,并得到國際電工委員會的認可,同時頒布了相應的標準IEC625。在英國、日本、俄羅斯則稱為GP-IB,我國已制定了相應的國家標準(GB249.1-249.2),雖然有多種叫法,但實質上除了機械標準方面歐美有所不同外,其余完全相同。使用該總線可以把世界上不同國家、不同廠家生產(chǎn)的儀器設備有效地連接起來。這樣組成的系統(tǒng)方便靈活,功能強,適應性好,不僅大大降低了組建系統(tǒng)的成本,提高了效率,而且使每臺儀器的功能和作用獲得充分發(fā)揮,極大地提高了它們的使用價值。
IEEE-488總線是并行無源雙向傳輸總線。其中有8根數(shù)據(jù)總線,3根掛鉤總線和5根管理總線。
數(shù)據(jù)總線:DIO0~DIO7,它們是可以輸入也可以輸出的雙向總線,用于發(fā)布地址、指令等多線消息,傳遞數(shù)據(jù)。
管理總線:ATN(ATTENTION,注意)線;IFC(INTERFACE CLEAR,接口清除)線;REN(REMOTE ENABLE,遠控使能)線;SRQ(SERVICE REQUEST,服務請求)線;EOI(END OR IDENTIFY,結束或識別)線。
掛鉤總線:DAV(DATA VALID,數(shù)據(jù)有效)線;NRFD(NOT READY FOR DATA,未準備好接收數(shù)據(jù))線;NDAC(NOT DATA ACCEPTED,未接收到數(shù)據(jù))線。
利用這三條線進行掛鉤控制消息和數(shù)據(jù)的傳遞,確保信息傳送的準確無誤。
IEEE-488總線最多可同時掛接15臺設備,不同的設備需分配不同的地址;要求傳輸電纜總長小于20 m,最高數(shù)據(jù)傳輸速率可達1 MB/s。當系統(tǒng)工作時,總線上的不同設備承擔不同的任務,從邏輯功能上分為:控者、講者、聽者。
控者:可以設定掛接在總線上的設備的地址,設定講者、聽者,向它們發(fā)送命令,PC機則是典型的控者。
講者:向系統(tǒng)中其他設備發(fā)送測量數(shù)據(jù)、狀態(tài)數(shù)據(jù)等器件消息;一個系統(tǒng)中允許有多個講者,但同一時刻只能有一個。
聽者:可以接收數(shù)據(jù)的設備。
聽者、講者都要由控者來任命。一臺設備可以同時具備上述三種功能中的一種、兩種或三種。比如:當控者PC機任命信號源為聽者,則可發(fā)送程控數(shù)據(jù),規(guī)定它輸出的信號的波形、頻率、幅值;當PC機任命自己為聽者,任命萬用表為講者,PC機就可以接收萬用表的狀態(tài)數(shù)據(jù)和測量數(shù)據(jù)。
2硬件構成原理
該通信系統(tǒng)硬件采用模塊化結構,其原理如圖1所示。它主要由8031單片機數(shù)據(jù)采集系統(tǒng),單片機IEEE-488總線接口,MS-2105A型 IEEE-488總線接口板(直接插入PC機總線擴展槽中)及PC機組成。
圖1系統(tǒng)結構框圖
其中單片機系統(tǒng)的IEEE-488總線接口是用標準接口專用集成電路,即由Intel公司的8291總線收發(fā)器,8293總線驅動器構成,如圖2所示。其中8291內部有16個寄存器(8個讀寄存器和8個寫寄存器)。它們由微處理器通過CS、RD、WR和RS0~RS2引腳尋址。
圖28031與IEEE-488總線的接口電路
D0~D7:數(shù)據(jù)總線與8031數(shù)據(jù)總線P0口相連;RS0~RS2:選擇寄存器進行讀寫操作。CS為片選端,低電平有效,連接至P2.5,地址從DFF0H到DFF7H。RD,WR分別控制對讀、寫寄存器進行操作。INT連接到8031的INT1,為高電平時表示有中斷請求,因與8031的中斷極性相反,所以需在程序中顛倒極性。
評論