<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    基于雙核多接口的智能汽車控制系統設計

    發布時間:2009-8-25 09:58    發布者:賈延安
    關鍵詞: 接口 , 控制系統 , 汽車 , 雙核 , 智能
    系統基本構建如圖1所示,包括傳感器信號采集處理、動力電機驅動、轉向舵機控制以及控制算法軟件開發等。

      雙核的引入

      在智能車的設計之初,我們分析認為,在基于光電傳感器的智能車設計系統中重要的是信號的完整性,即通過傳感器獲得賽道信息和車的位置信息越多越好。通過比較8位和16位單片機的接口數目與性能要求,本設計決定使用兩片8位微控制器MC9S08DZ60作為核心控制單元。




      雙核間通信接口SPI

      在車輛運行過程中,三種傳感器的信息需要由控制器來采集,分別是光電傳感器、速度傳感器、角速度傳感器。由于角速度傳感器需要有一個準確的采樣周期,我們使用單片機的內部定時器產生一個1.2ms的時間基準。在這個1.2ms的周期里執行對三種傳感器的數據采集,當定時器的溢出中斷時執行一次 SPI的數據發送程序。SPI是一種高速、全雙工、同步的通信總線,并且在芯片的引腳上只占用四根線,分別是mosi,miso,sck,ss。我們使用 1MHz的數據傳輸速度,使用3個字節來發送傳感器的數據,兩個字節發送速度傳感器和角速度傳感器的數據。

      控制系統與上位機的通信接口SCI

      車輛在行駛過程中的運行狀況,是無法直接通過觀察來得到的,所以我們使用上位機系統來進行實時監控。使用wap200b無線串口模塊來發送數據,模塊使用3.0V供電,內置高速MCU,數據傳輸準確率高。單片機與模塊間通訊使用標準串口,將其設置為115200波特率、8位數據位、1位停止位、無奇偶校驗。一次通訊共發送7個數據。首先發送兩個數據作為握手信號分別是0x00和0xFF,之后使用3個字節的數據發送傳感器信息,1個字節數據發送角度信息,1個字節數據發送速度信息,最后一位保留位做以后擴展使用,發送0x00。

      鍵盤與主控芯片的通信接口I2C

      車輛在實際調試時有許多參數需要不停的調試,如PID參數車輛的轉角及速度等。設置不同的參數時如果每次都重新下載程序的話會費時費力,所以在這里我們使用鍵盤來輸入車輛行駛時的參數。鍵盤控制芯片HD7279是一片具有串行接口的,可同時驅動8位共陰極數碼管(或64只獨立的LED)的智能顯示驅動芯片,該芯片同時還可連接多達64鍵的鍵盤矩陣,單片即可完成LED顯示、鍵盤接口的全部功能。

      我們使用單片機的4個I/O口來操作HD7279,分別為CS、CLK、DATA、KEY 。在這里我們可以通過鍵盤來設置一些參數,如PID的Kp、Ki、Kd參數,直線及彎道的速度等。

      A/D模塊在采集角速度中的應用

      本系統中A/D轉換模塊主要用于采集陀螺儀的輸出值。由于模擬陀螺造價比較低,而在車?刂葡到y中對角度精度的要求不是很高,所以使用模擬陀螺對車身姿態進行實時校正。MC9S08DZ60內部集成了12位數模轉換通道。由于模擬陀螺輸出信號范圍為 0~5V,這樣單片機的參考電壓為+5V,由高精度穩壓模塊單獨供電,確保轉換的精度。對A/D轉換后的數據處理程序如下:

      void Gyro_Process(void)

      {

      if(Gyro_Start == 1)

      {

      unsigned int Max,Min,i,Value;

      signed long Sum;

      Gyro_Data_Num = 0;

      while(Gyro_Data_Num < 13)

      {

      Gyro_Collection();//AD轉換后的數據采集函數

      }

      Gyro_Start = 0;

      for(i=1,Max=0,Min=0xffff,Sum

      =0;i<13;i++)

      {

      Value=Gyro_Data_BUF[ i];

      Sum+=Value;

      if(Max

      Max=Value;

      if(Min>Value)

      Min=Value;

      }

      Sum= Sum-Max-Min ;

      SUM_Test = Sum;

      CarAngel_V=((((signed long)(Sum/10)- (signed long)Gyro_MidValue)*10000)>>16);

      /限幅處理/

      if(CarAngel_V > 0)

      {

      CarAngel_V = (CarAngel_V *

      1013) / 1000;

      }

      if(CarAngel_V<0)

      {

      CarAngel_V = (CarAngel_V *

      1004)/ 1000;

      }

      if(CarAngel_V>32767)

      {

      CarAngel_V=32767;

      }

      if(CarAngel_V<-32767)

      {

      CarAngel_V=-32767;

      }

      if(Gyro_Calibration_Flag == 1)

      CarAngelRate = (unsigned int)

      (CarAngel_V + 32767);

      else

      CarAngelRate = 32767;

      }

      }

      TPM模塊在伺服電機中的應用

      MC9S08DZ60擁有8路獨立的PWM通道,可以獨立配置PWM的頻率和占空比,最高頻率為總線時鐘頻率20MHz,可以滿足對舵機和電機的控制。同時此模塊還有兩路計數器模塊,可以采集碼盤返回的電機速度值,以便用于速度閉環控制。其中電機控制中的PWM初始化如下:

      void Motor_init(void)

      {

      TPM2SC = 0x00; /* Stop and

      reset counter */

      TPM2MOD = VV_MAX;//15khz /* Period value setting */

      (void)(TPM2C0SC == 0); /* Channel 0 int. flag clearing (first part) */

      /* TPM2C0SC: CH0F=0,CH0IE=0,MS0B=1,MS0A=0,ELS0B=0,ELS0A=4 */

      TPM2C0SC = 0x24;

      /* Int. flag clearing (2nd part) and channel 0 contr. register setting */

      TPM2C0V = VV_MAX/2; //50%占空比 /* Compare 0 value setting */

      (void)(TPM2SC == 0); /* Overflow int. flag clearing (first part) */

      /* TPM2SC: TOF=0,TOIE=0,CPWMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=0,PS0=0 */

      TPM2SC = 0x08; /* Int. flag clearing (2nd part) and timer control register setting */

      }

      普通I/O接口的應用

      MC9S08DZ60單片機的普通I/O口操作可以用于邏輯控制、顯示控制、信息采集等,其中對各個引腳的配置也比較簡單,需要配置方向寄存器PTXDD、上拉使能寄存器PTXPE,壓擺率寄存器PTXSE及數據寄存器PTXD,以A口為例:

      Int_A()

      {

      PTADD=0X00;//作為輸入

      PTAPE=0XFF;//上拉使能

      PTASE=0XFF;//壓擺率使能

      }

      程序需要讀取A口數據時直接讀出PTAD寄存器的值即可。

      結語

      該系統實現了智能車車中各模塊間的通信,對芯片的資源進行了充分的利用,實現了智能車多狀態的實時監測,保證了車模的速度控制和路徑優化,為以后的技術發展提供了很好的平臺。
    本文地址:http://www.portaltwn.com/thread-2577-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷