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