嵌入式超聲波測距儀的設計方案
超聲波測距電路主要包括兩個部分:超聲波發(fā)射電路和超聲波接收電路,具體的電路設計如圖3所示。圖2中上半部分就是超聲波發(fā)射電路,微處理器AT89C51通過編程在端口P16產(chǎn)生一個40kHz的超聲波信號,經(jīng)過兩個74LS14非門將信號驅動整形,再由三極管Q9對其進行放大,最后經(jīng)過變壓器T1送到超聲波傳感器CSB-T40,這樣就可以通過超聲波傳感器CSB-T40發(fā)出相應的超聲波信號。而圖3中的下半部分就是超聲波接收電路,超聲波信號通過障礙物發(fā)射到超聲波傳感器CSB-R40后,產(chǎn)生一定的電信號,電信號通過集成塊BX1490放大后送到了2個74LS14非門電路整形,最后進入微處理器AT89C51的P17端口。這樣就完成了1次超聲波測距的掃描過程,它可以通過程序來控制計數(shù)器,將計數(shù)器的數(shù)據(jù)轉換為相應的時間,再用時間乘以超聲波的傳播速度后除以2,既可以得到障礙物與超聲波傳感器之間的距離。
2.3 CAN總線通信電路
考慮到現(xiàn)在的智能測試設備日益趨于網(wǎng)絡化,則將CAN總線通信功能也設計進了此嵌入式超聲波測距儀中,CAN總線通信電路系統(tǒng)主要有AT89C51微控制器、獨立CAN通信控制器SJA1000、CAN總線驅動器PCA82C250及復位電路IMP708組成。CAN總線應用節(jié)點具體電路設計如下圖4所示。為了提高系統(tǒng)的抗干擾能力,設計在SJA1000和CAN總線驅動器PCA82C250之間增加了光電隔離器6N137。當微處理器AT89C51將測距結果數(shù)據(jù)通過P0口發(fā)送到CAN總線控制器SJA1000,由SJA1000將并行數(shù)據(jù)轉換為串行數(shù)據(jù)從端口TX0發(fā)出,經(jīng)過光電隔離器6N137后到達CAN總線驅動器PCA82C250,最后將數(shù)據(jù)發(fā)送到CAN總線上。相反,來自CAN總線的數(shù)據(jù)也可以經(jīng)過相應電路到達微處理器。這樣就可以實現(xiàn)測距儀與上位機的通信功能。
3 程序設計
3.1 主程序設計
系統(tǒng)主程序主要包括系統(tǒng)的啟動后對系統(tǒng)的初始化、超聲波發(fā)射與接收、中斷管理、計時程序、測距計算、結果顯示、CAN通信、報警等其他子程序組成。根據(jù)以上超聲波測距儀的工作原理描述,系統(tǒng)主程序的流程圖設計如圖5所示。在主程序初始化后就進入超聲波信號發(fā)送程序,即利用程序產(chǎn)生超聲波信號由微處理器的P16端口送出,此時系統(tǒng)進入計時狀態(tài),同時檢測P17端口是否能接收到超聲波的回波信號,但檢測到回波信號就關閉外部中斷進入計算距離子程序,接下來進行是否報警驗證和CAN通信子程序,最后打開外部中斷完成一次測距掃描過程,即主程序結束。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)超聲波液位計相關文章:超聲波液位計原理
液位計相關文章:磁翻板液位計原理
評論