51單片機(jī)與MXA2500GL的振動(dòng)信號(hào)分布式檢測(cè)
圖3 C8051F020單片機(jī)在方式3下的信息楨格式
PC機(jī)的異步串行通信口是采用通用異步接收發(fā)送器(簡(jiǎn)稱UART)為核心構(gòu)成的。UART的產(chǎn)品型號(hào)很多,大多采用Ins8250芯片。對(duì)UART的編程實(shí)際上是對(duì)其內(nèi)部寄存器的操作。UART內(nèi)部寄存器共有10個(gè)。編程時(shí)首先要確定串行通信的數(shù)據(jù)格式,這是通過將選定的數(shù)據(jù)格式參數(shù)寫入到線路控制寄存器LCR來(lái)完成的,接下來(lái)需要將波特率因子寫入到波特率因子寄存器來(lái)確定雙方傳輸波特率,再通過讀線路狀態(tài)寄存器LSR來(lái)判斷芯片是否就緒或有錯(cuò)等。通信線路控制寄存器LCR的格式如圖4所示。
圖4 通信線路控制寄存器LCR
通過將參數(shù)字節(jié)寫入到線路控制寄存器,可以將UART編程為這樣的串行通信數(shù)據(jù)格式:1位起始位,8位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1位停止位,1幀共 11位。既然能夠在PC機(jī)上實(shí)現(xiàn)1幀11位的數(shù)據(jù)格式,并且改變線路控制寄存器的D5、D4、D3位的值能將奇偶位設(shè)定為“恒1”或“恒0”,則若在發(fā)送地址幀時(shí)將奇偶位設(shè)定為“恒1”,在發(fā)送數(shù)據(jù)位時(shí)將奇偶位設(shè)定為“恒0”,便可以在PC機(jī)上模擬51系列單片機(jī)的多機(jī)通信持點(diǎn),從而直接利用這種特點(diǎn)實(shí)現(xiàn)它們之間的主從分布式多機(jī)通信。
主機(jī)和從機(jī)遵循主從原則,主機(jī)用呼叫方式選擇從機(jī),數(shù)據(jù)在主機(jī)和從機(jī)之間雙向傳遞,各從機(jī)之間的相互通信需通過主機(jī)作為中介。主從機(jī)之間還應(yīng)傳送一些供它們識(shí)別的命令和狀態(tài)字,如以00H表示主機(jī)發(fā)送從機(jī)接收命令,以01H表示從機(jī)發(fā)送主機(jī)接收命令等。
PC主機(jī)通信程序的實(shí)現(xiàn)方法
對(duì)PC機(jī)UART的編程是主機(jī)通信程序的核心。一般可以通過兩種方式實(shí)現(xiàn)對(duì)UART的操作。一種是直接訪問底層地址實(shí)現(xiàn)對(duì)LCR、LSR、波特率因子寄存器的操作,這種方法只適用于Windows9X.在WindowsNT環(huán)境下系統(tǒng)禁止用戶程序直接訪問硬件和物理地址,因此該方法不可取。具體過程是通過調(diào)用標(biāo)準(zhǔn)通信函數(shù)inp()、outp()實(shí)現(xiàn)的。另一種方式是通過通信控件或WindowsAPI函數(shù)間接對(duì)LCR、LSR、波特率因子寄存器進(jìn)行相關(guān)操作。因此本系統(tǒng)也使用MSComm控件,而WindowsAPI函數(shù)更適合在多現(xiàn)程領(lǐng)域應(yīng)用。
結(jié)束語(yǔ)
實(shí)踐證明基于C8051F020單片機(jī)與MXA2500GL傳感器的振動(dòng)信號(hào)分布式檢測(cè)系統(tǒng)性能可靠,大大的節(jié)約了成本,因此該系統(tǒng)在汽車整車及零部件的測(cè)試與診斷過程極具推廣價(jià)值。
模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
adc相關(guān)文章:adc是什么
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
熱電偶相關(guān)文章:熱電偶原理
評(píng)論