關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于C8051F020與MXA2500GL傳感器的振動信號分布式檢測方法

        基于C8051F020與MXA2500GL傳感器的振動信號分布式檢測方法

        作者: 時間:2012-02-03 來源:網絡 收藏


        圖2 系統的硬件架構

        多機通信協議

        單片機具有適于多機通信的特殊功能,即方式2(3)。在這2個方式里,接收的第9位進入RB8,然后為停止位。串行口可程控為:當接收到停止位,只有當RB8=1時才產生串行口中斷。這個特性可由置位SCON中的SM2控制。多機通信中使用這種特性的是:當主機要發送一個數據塊給幾個從機之一時,它先發送一個目標從機的地址字節,地址字節第9位為1而數據字節第9位為0。當SM2=1時,數據字節不會中斷任何從機,然而,地址字節會中斷所有從機,這樣每一個從機可檢查接收到的地址,看是否為尋址自己。被尋址的從機將SM2位清0,準備接收傳送過來的數據字節,沒被尋址的從機保持SM2為置位狀態,繼續處理其它工作。單片機方式3下的信息楨格式見圖3。

        圖3 單片機在方式3下的信息楨格式

          PC機的異步串行通信口是采用通用異步接收發送器(簡稱UART)為核心構成的。UART的產品型號很多,大多采用Ins8250芯片。對UART的編程實際上是對其內部寄存器的操作。UART內部寄存器共有10個。編程時首先要確定串行通信的數據格式,這是通過將選定的數據格式參數寫入到線路控制寄存器LCR來完成的,接下來需要將波特率因子寫入到波特率因子寄存器來確定雙方傳輸波特率,再通過讀線路狀態寄存器LSR來判斷芯片是否就緒或有錯等。通信線路控制寄存器LCR的格式如圖4所示?!   ?br /> 
        圖4 通信線路控制寄存器LCR

        通過將參數字節寫入到線路控制寄存器,可以將UART編程為這樣的串行通信數據格式:1位起始位,8位數據位,1位奇偶校驗位,1位停止位,1幀共11位。既然能夠在PC機上實現1幀11位的數據格式,并且改變線路控制寄存器的D5、D4、D3位的值能將奇偶位設定為“恒1”或“恒0”,則若在發送地址幀時將奇偶位設定為“恒1”,在發送數據位時將奇偶位設定為“恒0”,便可以在PC機上模擬51系列單片機的多機通信持點,從而直接利用這種特點實現它們之間的主從多機通信。
          
        主機和從機遵循主從原則,主機用呼叫方式選擇從機,數據在主機和從機之間雙向傳遞,各從機之間的相互通信需通過主機作為中介。主從機之間還應傳送一些供它們識別的命令和狀態字,如以00H表示主機發送從機接收命令,以01H表示從機發送主機接收命令等。

        PC主機通信程序的實現

        對PC機UART的編程是主機通信程序的核心。一般可以通過兩種方式實現對UART的操作。一種是直接訪問底層地址實現對LCR、LSR、波特率因子寄存器的操作,這種只適用于Windows9X.在WindowsNT環境下系統禁止用戶程序直接訪問硬件和物理地址,因此該方法不可取。具體過程是通過調用標準通信函數inp()、outp()實現的。另一種方式是通過通信控件或WindowsAPI函數間接對LCR、LSR、波特率因子寄存器進行相關操作。因此本系統也使用MSComm控件,而WindowsAPI函數更適合在多現程領域應用。

        結束語

        實踐證明基于C8051F020單片機與系統性能可靠,大大的節約了成本,因此該系統在汽車整車及零部件的測試與診斷過程極具推廣價值。

        本文引用地址:http://www.104case.com/article/161160.htm

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 铁岭县| 新乡县| 广德县| 乃东县| 应用必备| 海城市| 宜章县| 新河县| 孟村| 桦甸市| 乐陵市| 安仁县| 泌阳县| 博罗县| 遂川县| 庆安县| 石台县| 专栏| 科尔| 松滋市| 永吉县| 成都市| 漳浦县| 水富县| 沙田区| 郑州市| 库车县| 乐至县| 扶余县| 仁化县| 岢岚县| 磐安县| 江口县| 靖远县| 韶山市| 天峨县| 宁强县| 民丰县| 乌拉特前旗| 阳西县| 长岛县|