<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于雙核多接口的智能汽車(chē)控制系統設計方案

基于雙核多接口的智能汽車(chē)控制系統設計方案

作者: 時(shí)間:2012-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

系統基本構建如圖1所示,包括傳感器信號采集處理、動(dòng)力、轉向舵機控制以及控制算法軟件開(kāi)發(fā)等。
  
雙核的引入
  
在智能車(chē)的設計之初,我們分析認為,在基于光電傳感器的智能車(chē)設計系統中重要的是信號的完整性,即通過(guò)傳感器獲得賽道信息和車(chē)的位置信息越多越好。通過(guò)比較8位和16位單片機的接口數目與性能要求,本設計決定使用兩片8位微控制器MC9S08DZ60作為核心控制單元。

本文引用地址:http://dyxdggzs.com/article/257534.htm


  
雙核間通信接口SPI
  
在車(chē)輛運行過(guò)程中,三種傳感器的信息需要由控制器來(lái)采集,分別是光電傳感器、速度傳感器、角速度傳感器。由于角速度傳感器需要有一個(gè)準確的采樣周期,我們使用單片機的內部定時(shí)器產(chǎn)生一個(gè)1.2ms的時(shí)間基準。在這個(gè)1.2ms的周期里執行對三種傳感器的數據采集,當定時(shí)器的溢出中斷時(shí)執行一次SPI的數據發(fā)送程序。SPI是一種高速、全雙工、同步的通信總線(xiàn),并且在芯片的引腳上只占用四根線(xiàn),分別是mosi,miso,sck,ss。我們使用1MHz的數據傳輸速度,使用3個(gè)字節來(lái)發(fā)送傳感器的數據,兩個(gè)字節發(fā)送速度傳感器和角速度傳感器的數據。
 
控制系統與上位機的通信接口SCI
  
車(chē)輛在行駛過(guò)程中的運行狀況,是無(wú)法直接通過(guò)觀(guān)察來(lái)得到的,所以我們使用上位機系統來(lái)進(jìn)行實(shí)時(shí)監控。使用wap200b無(wú)線(xiàn)串口模塊來(lái)發(fā)送數據,模塊使用3.0V供電,內置高速MCU,數據傳輸準確率高。單片機與模塊間通訊使用標準串口,將其設置為115200波特率、8位數據位、1位停止位、無(wú)奇偶校驗。一次通訊共發(fā)送7個(gè)數據。首先發(fā)送兩個(gè)數據作為握手信號分別是0x00和0xFF,之后使用3個(gè)字節的數據發(fā)送傳感器信息,1個(gè)字節數據發(fā)送角度信息,1個(gè)字節數據發(fā)送速度信息,最后一位保留位做以后擴展使用,發(fā)送0x00。
  
鍵盤(pán)與主控芯片的通信接口I2C
  
車(chē)輛在實(shí)際調試時(shí)有許多參數需要不停的調試,如PID參數車(chē)輛的轉角及速度等。設置不同的參數時(shí)如果每次都重新下載程序的話(huà)會(huì )費時(shí)費力,所以在這里我們使用鍵盤(pán)來(lái)輸入車(chē)輛行駛時(shí)的參數。鍵盤(pán)控制芯片HD7279是一片具有串行接口的,可同時(shí)驅動(dòng)8位共陰極數碼管(或64只獨立的LED)的智能顯示驅動(dòng)芯片,該芯片同時(shí)還可連接多達64鍵的鍵盤(pán)矩陣,單片即可完成LED顯示、鍵盤(pán)接口的全部功能。
  
我們使用單片機的4個(gè)I/O口來(lái)操作HD7279,分別為CS、CLK、DATA、KEY 。在這里我們可以通過(guò)鍵盤(pán)來(lái)設置一些參數,如PID的Kp、Ki、Kd參數,直線(xiàn)及彎道的速度等。
  
A/D模塊在采集角速度中的應用
  
本系統中A/D轉換模塊主要用于采集陀螺儀的輸出值。由于模擬陀螺造價(jià)比較低,而在車(chē)??刂葡到y中對角度精度的要求不是很高,所以使用模擬陀螺對車(chē)身姿態(tài)進(jìn)行實(shí)時(shí)校正。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;i13;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_V0)
  {
  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的頻率和占空比,最高頻率為總線(xiàn)時(shí)鐘頻率20MHz,可以滿(mǎn)足對舵機和電機的控制。同時(shí)此模塊還有兩路計數器模塊,可以采集碼盤(pán)返回的電機速度值,以便用于速度閉環(huán)控制。其中電機控制中的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口操作可以用于邏輯控制、顯示控制、信息采集等,其中對各個(gè)引腳的配置也比較簡(jiǎn)單,需要配置方向寄存器PTXDD、上拉使能寄存器PTXPE,壓擺率寄存器PTXSE及數據寄存器PTXD,以A口為例:

  Int_A()
  {
  PTADD=0X00;//作為輸入
  PTAPE=0XFF;//上拉使能
  PTASE=0XFF;//壓擺率使能
  }
  
程序需要讀取A口數據時(shí)直接讀出PTAD寄存器的值即可。
  
結語(yǔ)
  
該系統實(shí)現了智能車(chē)車(chē)中各模塊間的通信,對芯片的資源進(jìn)行了充分的利用,實(shí)現了智能車(chē)多狀態(tài)的實(shí)時(shí)監測,保證了車(chē)模的速度控制和路徑優(yōu)化,為以后的技術(shù)發(fā)展提供了很好的平臺。

伺服電機相關(guān)文章:伺服電機工作原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>