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