找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7013|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于CAN總線的汽車后視鏡控制系統(tǒng)電路圖+單片機(jī)源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:523056 發(fā)表于 2019-4-27 17:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
電路原理圖如下:


目前各種汽車上安裝的后視鏡都存在不同程度的盲區(qū),
駕駛視野寬度的不足使車輛在行駛中始終存在安全隱患[1]。車輛在轉(zhuǎn)彎時(shí)駕駛員只能觀察到同水平線上車輛的后方視野,而看不到側(cè)方同向來車,尤其載貨汽車自身高度和長度的限制,使得駕駛員對后視鏡的依賴更加明顯,且載貨汽車貨箱長度大、載貨多、慣性大,轉(zhuǎn)彎時(shí)存在較大的內(nèi)輪差,一旦發(fā)生事故,死傷慘重。根據(jù)公安部道路交通安全研究中心的數(shù)據(jù)顯示,2014 年貨車總量占全國汽車保有量的8%,但貨車事故致死人數(shù)卻達(dá)到28%[2-5]。因此提出針對改善載貨汽車轉(zhuǎn)向行駛過程中后視鏡視野的后視鏡隨動(dòng)系統(tǒng),對提高載貨汽車的行駛安全性具有重要意義。
載貨汽車后視鏡的控制系統(tǒng)主要是通過手動(dòng)按鈕的方式
完成對后視鏡的調(diào)節(jié),并且載貨汽車在轉(zhuǎn)彎時(shí)的后視鏡不會(huì)自動(dòng)調(diào)節(jié),導(dǎo)致駕駛員的視野范圍很局限。后視鏡智能調(diào)整
技術(shù)在轎車上有一些研究成果,有研究人員根據(jù)轉(zhuǎn)向燈的開啟及關(guān)閉為輸入信號,控制后視鏡電機(jī)的啟停及轉(zhuǎn)動(dòng)方向[6],但是這種后視鏡調(diào)節(jié)方法,不能準(zhǔn)確、實(shí)時(shí)性的為駕駛員提供最佳后視鏡駕駛視野;黃科[7]等人采用單片機(jī)實(shí)現(xiàn)了對后視鏡的自動(dòng)翻轉(zhuǎn)控制,提高了后視鏡的調(diào)節(jié)精度,鄭芳芳[8]等人基于CAN 總線實(shí)現(xiàn)了后視鏡的自動(dòng)折疊展開及位置記憶功能,但都沒有結(jié)合后視鏡視野盲區(qū)對后視鏡的轉(zhuǎn)動(dòng)做出調(diào)整。
鑒于目前后視鏡系統(tǒng)的局限性,本文對載貨汽車交匯路口轉(zhuǎn)彎時(shí)的后視鏡視野情況做了分析,采用單片機(jī)作為主控單元,以方向盤的轉(zhuǎn)角作為輸入信號,設(shè)計(jì)了后視鏡隨動(dòng)系統(tǒng),該系統(tǒng)可以實(shí)現(xiàn)方向盤轉(zhuǎn)角數(shù)據(jù)的傳輸,并通過L298N后視鏡電機(jī)驅(qū)動(dòng)模塊完成了對后視鏡鏡面的自適應(yīng)控制,使車輛在交叉路口轉(zhuǎn)彎時(shí)駕駛員的后視鏡視野得到很大程度的改善,提高了載貨汽車在轉(zhuǎn)彎情況下的行車安全性。
1 系統(tǒng)硬件設(shè)計(jì)
本文所涉及的后視鏡隨動(dòng)系統(tǒng),主要由輸入端、主控單元、執(zhí)行端三大部分組成。其中輸入端主要由方向盤轉(zhuǎn)角傳感器和CAN 模塊組成;主控單元采用STM32 系列單片機(jī)作為微處理器模塊的核心器件,執(zhí)行算法及控制工作;執(zhí)行端包括后視鏡鏡面控制器及電機(jī)驅(qū)動(dòng)模塊L298N。方向盤轉(zhuǎn)角傳感器采集到的轉(zhuǎn)角數(shù)據(jù),通過CAN 模塊傳送給主控單元STM32 系列單片機(jī),STM32 系列單片機(jī)將接收到的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理后對電機(jī)驅(qū)動(dòng)模塊輸入端進(jìn)行高低電平的控制,可以實(shí)現(xiàn)對后視鏡鏡面控制器中調(diào)整電機(jī)的正反轉(zhuǎn)控制,后視鏡的轉(zhuǎn)動(dòng)角度則通過時(shí)間控制來實(shí)現(xiàn)。系統(tǒng)的整體結(jié)構(gòu)框
圖如圖1 所示。
圖1 隨動(dòng)系統(tǒng)整體結(jié)構(gòu)框圖
Fig.1 The overall structure diagram of the follow-up system
1.1 輸入端的設(shè)計(jì)
該后視鏡隨動(dòng)系統(tǒng)采用的是型號為C68049XF25849366
ANA76100BA的方向盤轉(zhuǎn)角傳感器,該型號的傳感器抗干擾性能較強(qiáng)且工作信號穩(wěn)定可靠。轉(zhuǎn)角傳感器的內(nèi)部結(jié)構(gòu)主要包括1 個(gè)角度測量芯片MLX90316、5 個(gè)槽型光電傳感器SG278 編碼陣列、電源穩(wěn)壓電路等。轉(zhuǎn)角傳感器安裝在方向盤下方的轉(zhuǎn)向管柱上,能夠檢測方向盤轉(zhuǎn)動(dòng)角度及轉(zhuǎn)動(dòng)方向。
轉(zhuǎn)角傳感器的基本工作原理:方向盤轉(zhuǎn)動(dòng)時(shí)通過轉(zhuǎn)向柱帶動(dòng)主動(dòng)齒輪轉(zhuǎn)動(dòng),此時(shí)從動(dòng)齒輪的轉(zhuǎn)動(dòng)引起從動(dòng)齒輪上方小磁鐵周圍磁場方向的改變,這種變化由MLX90316 芯片檢測并輸出與小磁鐵轉(zhuǎn)動(dòng)角度呈線性關(guān)系的模擬電壓[9-10],此電壓經(jīng)DSP 芯片計(jì)算得到的轉(zhuǎn)角數(shù)據(jù),然后經(jīng)過CAN 模塊轉(zhuǎn)換傳送給主控單元52 單片機(jī)

單片機(jī)源程序如下:
  1. /*********************************************************************************/
  2. /*注意:本例程是基于STC89系列傳統(tǒng)型12T 51單片機(jī)編寫,由于不同系列51單片機(jī)一些外設(shè)*/
  3. /*功能配置存在差異,請親們在使用時(shí)對應(yīng)進(jìn)行修改。*/
  4. /*********************************************************************************/
  5. #include <reg52.h>
  6. #include "MCP2515.H"

  7. unsigned char CAN_Flag=0;                                                        //CAN接收到數(shù)據(jù)標(biāo)志
  8. unsigned char CAN_R_Buffer[8];                                                //CAN接收數(shù)據(jù)保存緩沖區(qū)
  9. extern unsigned char ge,shi,bai,qian,wan;           //顯示變量
  10. extern void Init_ADXL345(void);             //初始化ADXL345
  11. extern unsigned char Single_Read_ADXL345(unsigned char REG_Address);                   //單個(gè)讀取內(nèi)部寄存器數(shù)據(jù)
  12. extern void  Multiple_Read_ADXL345();                                  //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)
  13. /*******************************************************************************
  14. * 函數(shù)名  : Exint1_Init
  15. * 描述    : 外部中斷1初始化函數(shù)
  16. * 輸入    : 無
  17. * 輸出    : 無
  18. * 返回值  : 無
  19. * 說明    : 無
  20. *******************************************************************************/
  21. void Exint1_Init(void)
  22. {
  23.     PX1=1;                //設(shè)置外部中斷1的中斷優(yōu)先級為高優(yōu)先級
  24.     IT1 = 1;        //設(shè)置INT1的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
  25.     EX1 = 1;        //使能INT1中斷
  26.     EA = 1;         //使能總中斷
  27. }
  28. /*******************************************************************************
  29. * 函數(shù)名  : Exint1_ISR
  30. * 描述    : 外部中斷1中斷服務(wù)函數(shù)
  31. * 輸入    : 無
  32. * 輸出    : 無
  33. * 返回值  : 無
  34. * 說明    : 用于檢測MCP2515中斷引腳的中斷信號
  35. *******************************************************************************/
  36. void Exint1_ISR(void) interrupt 2 using 1
  37. {
  38.         CAN_Flag=1;//CAN接收到數(shù)據(jù)標(biāo)志
  39. }
  40. /*******************************************************************************
  41. * 函數(shù)名  : main
  42. * 描述    : 主函數(shù),用戶程序從main函數(shù)開始運(yùn)行
  43. * 輸入    : 無
  44. * 輸出    : 無
  45. * 返回值  : 無
  46. * 說明    : 無
  47. *******************************************************************************/
  48. char Can_Tx_Buf[4];
  49. extern void delay(unsigned int k);
  50. void main(void)
  51. {
  52.         unsigned char devid;               

  53.         Init_ADXL345();                 //初始化ADXL345
  54.         devid=Single_Read_ADXL345(0X00);//讀出的數(shù)據(jù)為0XE5,表示正確       

  55.         Exint1_Init();                        //外部中斷1初始化函數(shù)
  56.         MCP2515_Init();                        //MCP2515初始化配置
  57.         while(1)
  58.         {
  59.             Multiple_Read_ADXL345();       //連續(xù)讀出數(shù)據(jù),存儲在BUF中       
  60.                 display_x();   
  61.                 Can_Tx_Buf[0] = qian;
  62.                 Can_Tx_Buf[1] = bai;
  63.                 Can_Tx_Buf[2] = shi;
  64.                 Can_Tx_Buf[3] = ge;
  65.                 delay(1000)                        ;
  66.                 CAN_Send_Buffer(Can_Tx_Buf,4);//CAN發(fā)送指定長度的數(shù)據(jù)               
  67.         }
  68. }
復(fù)制代碼

所有資料51hei提供下載:
基于52單片機(jī)汽車后視鏡.rar (2.2 MB, 下載次數(shù): 184)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:5212 發(fā)表于 2021-8-25 22:18 | 只看該作者
這個(gè)適用于哪些車型的CAN協(xié)議呢?
回復(fù)

使用道具 舉報(bào)

板凳
ID:47286 發(fā)表于 2021-8-27 00:49 來自手機(jī) | 只看該作者
開車不都是先看鏡子后轉(zhuǎn)向么 這時(shí)候還沒打方向盤 鏡子怎么動(dòng)
回復(fù)

使用道具 舉報(bào)

地板
ID:282795 發(fā)表于 2023-2-8 11:42 | 只看該作者
非常經(jīng)典。。。。。。。。。。。。。。。。。。。。。。
回復(fù)

使用道具 舉報(bào)

5#
ID:833102 發(fā)表于 2023-7-11 17:18 | 只看該作者
666好文章
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表