電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>ARM>車輛檢測控制單元的ARM設(shè)計

車輛檢測控制單元的ARM設(shè)計

2017-10-17 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

由于交通需求的不斷增加,有越來越多的環(huán)形感應(yīng)線圈檢測器用于交通檢測。這些埋設(shè)在道路表面下的線圈可以檢測到車輛通過時的電磁變化進(jìn)而精確地算出交通流量。交通流量是交通統(tǒng)計和交通規(guī)劃的基本數(shù)據(jù),通過這些檢測結(jié)果可以用來計算占用率(表征交通密度),在使用雙線圈模式時還可以提供速度、車輛行駛方向、車型分類等數(shù)據(jù),這些數(shù)據(jù)對于交通管理和統(tǒng)計是極為重要的。通常高速公路車輛檢測系統(tǒng)由多通道環(huán)形檢測單元LD4和控制單元CCU組成,本文采用PHILIPS公司最新推出的arm7內(nèi)核微處理器LPC2114設(shè)計實現(xiàn)了車輛檢測系統(tǒng)控制單元部分,并且和5個LD4環(huán)形檢測器一起構(gòu)成10通道高速公路車輛檢測系統(tǒng)。
  
  LPC2114和電子硬盤連線示意圖
  車輛檢測控制單元的ARM設(shè)計
  主程序流程圖
  總體方案設(shè)計
  本文設(shè)計的控制板系統(tǒng)原理框圖如圖2所示,以LPC2114為核心控制單元,該芯片是一種支持實時仿真和跟蹤的16/32位基于arm7TDMI-S內(nèi)核的CPU。內(nèi)部集成了4路10位A/D轉(zhuǎn)換器,兩個32位定時器、一個實時時鐘看門狗,多個串行接口,包括兩個工業(yè)標(biāo)準(zhǔn)的UART、高速和兩個SPI總線接口,外部多達(dá)46個與TTL電平兼容的通用I/O口,非常適用于作為主控單元。CPLD EPM7128作為微處理器的擴(kuò)展輸入/輸出,通過光電耦合和LD4標(biāo)準(zhǔn)定義總線相連,該標(biāo)準(zhǔn)定義的總線基于RS-485總線通信協(xié)議。LD4和控制板通過標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)交換,控制板每隔10秒掃描并發(fā)送一次請求數(shù)據(jù)的命令,相應(yīng)LD4通道返回請求數(shù)據(jù)或者無效信息,arm處理器對獲得的各通道數(shù)據(jù)進(jìn)行相應(yīng)的統(tǒng)計運(yùn)算處理。每隔用戶設(shè)定的間隔時間就將統(tǒng)計數(shù)據(jù)存儲于靜態(tài)RAM,供中心站定時獲取,同時,以分鐘為單位將統(tǒng)計的數(shù)據(jù)備份至Flash電子硬盤中。中心站可以通過請求備份數(shù)據(jù)命令獲取相應(yīng)時間段的數(shù)據(jù),并存入數(shù)據(jù)庫。中心站和控制板采用RS-232串口方式通信,利用調(diào)制解調(diào)器實現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸。為了解決大容量存儲問題,系統(tǒng)使用了三星公司提供的K9F2808來作為電子硬盤,16MB的容量能夠存儲11天備份數(shù)據(jù),并且該電子硬盤能夠靈活升級。
  LPC2114與電子硬盤的接口實現(xiàn)
  為了防止傳輸及中心站故障等問題而導(dǎo)致數(shù)據(jù)丟失,系統(tǒng)要求對一段時間內(nèi)的數(shù)據(jù)進(jìn)行備份,因此在系統(tǒng)設(shè)計的過程中需要考慮大容量存儲問題。
  設(shè)定本系統(tǒng)每分鐘需要備份一次統(tǒng)計數(shù)據(jù),根據(jù)環(huán)形檢測器LD4的數(shù)據(jù)格式,一次數(shù)據(jù)量為1026B,若采用靜態(tài)RAM作為存儲單元,需要多片大容量RAM級聯(lián)使用,價格昂貴,且存儲容量擴(kuò)展困難。若使用動態(tài)RAM作為存儲單元,缺點在于控制困難,需要動態(tài)RAM控制器輔助操作。Flash作為存儲器使用簡單,容量大,盡管使用壽命有限,考慮到系統(tǒng)每1分鐘存儲1026B,就16MB容量而言,11天左右寫滿一次,那么一個月擦寫約3次,以此計算,一年擦寫約36次,而Flash壽命一般為擦寫10萬余次,所以本系統(tǒng)完全可以采用Flash作為電子硬盤用在車輛檢測系統(tǒng)中。另外,F(xiàn)lash還具有掉電非易失特性,更適合應(yīng)用于本系統(tǒng)。
  為了便于存儲容量的升級擴(kuò)展,本系統(tǒng)選用K9F2808作為存儲器。K9F2808為48腳表面封裝器件,芯片內(nèi)部有(16M+512K)×8 bit的存儲空間,可組成32768行,528列,其中后備的16列的列地址編碼為513~527,可進(jìn)行528字節(jié)為一頁的讀、寫和32頁為一塊的擦除操作。此外,K9F2808的特點還在于其命令、地址和數(shù)據(jù)信息均通過8條I/O總線傳輸,接口標(biāo)準(zhǔn)統(tǒng)一,易于存儲容量升級。
  LPC2114和Flash電子硬盤之間的連線如示意圖,由于LPC2114沒有外部總線,所以對Flash操作只能采用I/O操作方式。K9F2808各種操作具有共同特點,即在I/O端口首先發(fā)送操作命令字到命令寄存器,其后的連續(xù)3個周期發(fā)送需要操作單元的地址,順序為:A0~A7,A9~A16,A17~A23,其中A8由命令字確定。
  下面以頁編程操作為例,給出K9F2808的arm驅(qū)動程序(基于ADS1.2開發(fā)環(huán)境),而頁讀以及塊擦除等方法與頁編程類似,只是讀是由#RE信號來鎖存數(shù)據(jù),而擦除時只須送兩個周期的地址。
  row_add為頁號,需要左移9位得到行地址。erase_flash()――擦除Flash函數(shù)
  write_command()――寫命令函數(shù)
  write_address()――寫地址函數(shù)
  write_data()――寫數(shù)據(jù)函數(shù)
  read_data()――讀數(shù)據(jù)函數(shù)
  void flash_store(uint32 row_add, uint8 *buffer)
  { uint16 i;
  uint32 statue,address;
  //變量定義
  IO0DIR |= 0x00ff0000;
  //設(shè)定IO方向
  if((row_add== 0)||((row_add%32)==0))
  {address = row_add《9;
  address 0x00fffe00;
  erase_flash(address);}
  //擦除Flash
  write_command(0x80);
  //寫命令80H
  address = row_add《9;
  address 0x00fffe00;
  write_address(address);
  //寫地址
  statue = IO0PIN;
  //獲取狀態(tài)
  while((statue
  {statue = IO0PIN;}
  //忙,等待
  for(i=0;i《528;i++)
  //寫528字節(jié)
  {write_data(*(buffer+i));}
  //寫入數(shù)據(jù)
  write_command(0x10);
  //寫命令10H
  statue = IO0PIN;
  //獲取狀態(tài)
  while((statue&fr_b)==0)
  {statue = IO0PIN;}
  //忙,等待
  write_command(0x70);
  //寫命令70H
  statue = read_data();
  //獲取狀態(tài)
  if(statue&0x01)
  {IO0SET |= errorled;}
  //操作失敗
  }
  LPC2114串口通信實現(xiàn)
  控制系統(tǒng)通過LPC2114的兩個UART實現(xiàn)和LD4以及中心站的數(shù)據(jù)交換,兩個UART具備觸發(fā)點可調(diào)的16B收發(fā)FIFO.其中,UART1比UART0增加了調(diào)制解調(diào)器接口。UART的基本操作方法和傳統(tǒng)51內(nèi)核單片機(jī)相似。
  首先,設(shè)置I/O連接到UART;然后設(shè)置串口波特率(如U0DLM、U0DLL);接著設(shè)置串口工作模式(如U0LCR、U0FCR);這時就可以通過寄存器U0THR和U0RBR發(fā)送/接收數(shù)據(jù)了,發(fā)送/接收模塊的狀態(tài)信息可以通過U0LSR寄存器讀取。
  系統(tǒng)通過RS-485總線和LD4板卡通信,采用MAX3485作為RS-485總線控制器和LPC2114的UART1通信。MAX3485是3.3V供電的半雙工收發(fā)芯片,將差分RS-485總線信號轉(zhuǎn)換成arm核能夠接受的串口信號。為了實現(xiàn)和PC機(jī)通信,系統(tǒng)采用3.3V工作電壓的MAX3232作為RS-232電平轉(zhuǎn)換芯片。
  LPC2114設(shè)計注意事項
  LPC2114在開發(fā)的過程中有一些需要特殊注意的問題,總結(jié)如下:
 ?。?)當(dāng)用戶程序?qū)懭隖lash后不能運(yùn)行時,首先,需要考慮中斷向量表是否正確,中斷向量表累加和必須為0.其次,需要考慮向量表的定位,向量表是否已經(jīng)定位在0x00000000地址。然后,需要考慮MEMMAP寄存器的設(shè)置是否正確,否則中斷無法執(zhí)行。此外,還需要考慮ISP硬件條件是否滿足,LPC2114的P0.14腳在#RESET為低時,該引腳線上的低電平將強(qiáng)制芯片進(jìn)入ISP狀態(tài),硬件設(shè)計時必須在該引腳加10KW上拉電阻,否則,該引腳不穩(wěn)定,對設(shè)備啟動將會有影響。
  (2)LPC2114共有46個GPIO,這些I/O可以任意配置,但是個別引腳開漏輸出(P0.2、P0.3),需加上拉電阻。另外,F(xiàn)lash存儲器K9F2808狀態(tài)輸出引腳R/#B開漏輸出,需加10KW的上拉電阻。
 ?。?)LPC2114芯片加密后,只能通過ISP對芯片全局擦除后才能恢復(fù)JTAG調(diào)試以及下載等功能。當(dāng)#RESET為低時,P1.26的低電平使P1.26~P1.31復(fù)位后作為調(diào)試端口,注意在P1.26引腳和地之間需接一個弱偏置電阻。
  系統(tǒng)軟件設(shè)計思想及注意事項
  車輛檢測系統(tǒng)arm軟件采用分層設(shè)計思想,整個軟件由驅(qū)動程序和應(yīng)用軟件兩部分構(gòu)成。驅(qū)動程序部分封裝了Flash操作、RS-485操作、實時時鐘(RTC)操作、RS-232操作和I/O等操作。應(yīng)用軟件分成基本函數(shù)庫和主程序。
  在32位arm核應(yīng)用系統(tǒng)中,為了進(jìn)行系統(tǒng)初始化,往往采用一個匯編文件作為啟動代碼,來實現(xiàn)堆棧、中斷、系統(tǒng)變量、I/O初始化以及地址重映射等操作。開發(fā)平臺ADS的策略是不提供完整的啟動代碼,不足部分需要開發(fā)人員自己編寫。
  系統(tǒng)設(shè)計的啟動代碼包含中斷向量表、堆棧初始化以及相應(yīng)的中斷服務(wù)程序與C語言的接口。對LPC2114而言,為了使向量表中所有數(shù)據(jù)32位累加和為0 ,向量表中設(shè)置保留向量值,將中斷向量表中的32個字節(jié)數(shù)累加,其中,保留向量值不用累加,然后取累加值的補(bǔ)碼,這個補(bǔ)碼的低32位就是保留向量的值。該保留向量值將被BOOT裝載程序用作有效的用戶程序關(guān)鍵字。當(dāng)向量表中所有數(shù)據(jù)累加和為0時,且ISP外部硬件條件不滿足時,BOOT裝載程序?qū)?zhí)行用戶程序。
  結(jié)語
  本文基于PHILIPS公司最新的arm7內(nèi)核微處理器LPC2114實現(xiàn)了高速公路車輛檢測系統(tǒng)的控制單元部分的設(shè)計。LPC2114使用簡單、開發(fā)容易、具有較高的性價比,非常適用于嵌入式系統(tǒng)中。目前本系統(tǒng)已經(jīng)推向市場,并取得了較好經(jīng)濟(jì)效益。
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1490次下載  |  免費
  3. 2單片機(jī)典型實例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費
  11. 6基于AT89C2051/4051單片機(jī)編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
  14. 0.63 MB  |  3次下載  |  免費
  15. 89天練會電子電路識圖
  16. 5.91 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關(guān)電源設(shè)計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費