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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于μc/OS-II和LPC2378微控制器汽車實驗數(shù)據(jù)海量存儲系統(tǒng)的設計

電子設計 ? 來源:微計算機信息 ? 作者:楊忻愷,張為公 ? 2020-11-01 11:47 ? 次閱讀

引言

隨著科學技術的不斷發(fā)展.數(shù)據(jù)的存儲和傳輸在嵌入式系統(tǒng)有了越來越重要的地位。海量數(shù)據(jù)存儲是當前科技發(fā)展中的—個熱點領域.它的應用也變的日益廣泛。

設計嵌入式海量數(shù)據(jù)采集存儲系統(tǒng)首先需要考慮的問題是軟硬件接口的設計。只有軟硬件接口定義清晰.協(xié)同工作順利。才能保證軟件與硬件組合為一個系統(tǒng)。軟硬件接口設計又分為2個具體的問題:一是硬件接口連線的定義是否合理;二是軟件上如何正確地收、發(fā)信息以及交換數(shù)據(jù)。必須選擇合理的CPU來解決這兩個問題。ARM核CPU以其高性能、小體積、低功耗和多供應源的出色結合而著名.它的另—個顯著優(yōu)點是易移植各種嵌人式實時操作系統(tǒng).對于海量存儲系統(tǒng),這是非常必要的。此外,SD卡存儲技術.目前設計成熟、應用廣泛目使用極為簡捷。

因此,本設計選擇基于ARM的嵌入式結構作為海量存儲的控制系統(tǒng).使用高效便捷的CAN-BUS作為數(shù)據(jù)采集通道.采用SD卡作為存儲介質.同時也為以后進一步完善系統(tǒng)功能提供了良好的解決方案。下面將圍繞基于ARM的汽車實驗數(shù)據(jù)海量存儲系統(tǒng)的硬件設計和軟件設計展開論述。

1 系統(tǒng)硬件設計

1.1 系統(tǒng)總體設計

通過分析系統(tǒng)的功能,根據(jù)模塊的實際需要,設計中選用了具有CAN-BUS以及SD/MMC卡管理功能的高性能ARM處理器LPC2378。LPC2378是一款基于ARM7的微控制器,十分適用于需要串行通信的場合.且其內部包含CAN通道。所以需要考慮針對CAN總線的接口設計及其隔離電路的設計(詳述見下文)。在它的基礎上.再配上電源以及存儲器等芯片,就構成了一個完整的嵌入式系統(tǒng)。系統(tǒng)總體框圖如圖1所示:

基于μc/OS-II和LPC2378微控制器汽車實驗數(shù)據(jù)海量存儲系統(tǒng)的設計

圖1 系統(tǒng)總體框圖

1.2 SD存儲卡接口設計

本次方案選定的LPC2378微控制器內部帶有SD卡控制器,支持SD卡的SD總線模式.因此.我們可以直接使用該控制器來訪問卡。接口電路(如圖2所示)包括4個部分:

圖2 SD存儲卡接口電路

1.SD總線:如圖所示。微控制器的P0.22、P2.11、P2.12、P2.13、P0.20根據(jù)引腳功能.直接連接到卡座的相應接口。

2.SD卡ESD保護電路:如圖所示.在卡座的數(shù)據(jù)總線DAT0-DAT3、時鐘線CLK和命令線CMD上.使用了—個ESD保護器件PESD5VOL6U。這是—個專用于SD/MMC卡的ESD保護器件。它的作用是:當卡插人或拔出時,保護卡不受高壓靜電的損害。

3.卡供電控制:用可控方式給卡供電,這是為了防止SD卡進入不確定狀態(tài)時,可以通過重新上電給卡復位。可控電路采用P型MOS管2SJ355.由ARM的GPIO口 P0.25進行控制。當P0.25輸出高電平時。2SJ355斷開卡的電源;當P0.25輸出低電平時,2SJ355導通VCC3.3電源給卡供電。采用2sJ355的目的是當它開通時。管子上的壓降比較?。诒WCSD/MMC卡工作允許電壓的情況下。也可以使用其它P型的MOS管。

4.卡檢測電路:卡檢測電路包括兩部分.卡是否完全插入到卡座中和卡是否寫保護。檢測信號以兩個引腳的電平方式輸出。當卡插入到位時.卡座的CARD—INSERT腳由于卡座內部觸點連接到GND,輸出低電平:當卡拔出時.該引腳由于上掩電阻的存在而輸出高電平。該輸出由ARM的輸入引腳P2.5來檢測??ㄊ欠駥懕Wo的檢測原理與此相同。

2 系統(tǒng)驅動程序設計

鑒于本系統(tǒng)的高實時性要求.在模塊軟件設計前首先在LPC2378上移植了μC/OS-II。μc/OS-II是一個高性能的嵌入式實時操作系統(tǒng)。能高效地實現(xiàn)任務切換、任務調度、任務問通信、同步、互斥、實時時鐘管理、中斷管理等功能。μC/OS-II也是—個移植性很強的操作系統(tǒng).系統(tǒng)移植時只需要修改和硬件有關的源代碼即可。

2.1 系統(tǒng)軟件流程

使用定時中斷方式采集CAN總線中的數(shù)據(jù)。在μC/OS-Ⅱ主函數(shù)中建立一個空閑任務TASK0.配置和初始化定時器0和實時時鐘,啟動多任務操作系統(tǒng).并記錄其啟動時間。接著在TASK0任務中初始化ADC、定時器等系統(tǒng)硬件,創(chuàng)建控制、存儲采樣信息的信號量和消息郵箱.并創(chuàng)建SD卡文件寫入任務、采樣任務和FS文件管理系統(tǒng)任務。其中,文件管理任務的優(yōu)先級最高.SD卡寫入任務最低。而采樣任務是由中斷服務程序(ISR)控制的.定時器時間到后,觸發(fā)中斷,ISR即發(fā)送信號量給采樣任務,隨即開始一次硬件采樣。SD卡文件寫入任務和采樣任務的流程圖分別如圖3、圖4所示。

圖3 SD卡文件寫入任務流程圖

圖4 采樣任務流程圖

在采樣中有兩個問題需要注意.首先是所有的采樣值都必須加上采樣時問的數(shù)據(jù),方便后期的實驗結果分析.所以在硬件設計中使用到了LPC2378的實時時鐘功能(RTC)。第二個問題是FS文件系統(tǒng)管理任務在控制SD卡寫入任務時.是以ASCII碼的形式往SD卡中寫入數(shù)據(jù),因此在數(shù)據(jù)存儲前比較將A/D采樣結果轉換成ASCⅡ碼。

2.2 CAN總線初始化設計

CAN控制器的寄存器比較多.但其通信流程與常規(guī)通信接口UART大體是一致的.所以初始化CAN的過程,包括對CAN的時鐘頻率.CAN的引腳一級波特率的設置等。需要注意的是。所有設置必須要在CAN控制器處于復位模式下時進行。

初始化CAN控制器使用函數(shù)CAN_Init().它包括了兩路的CAN控制器的同時配置。

CAN總線的初始化程序關鍵代碼:

void CAN_Init(unsigned char Ch,unsigned long Baud)

{

unsigned long addr

/*配置CAN控制器引腳*/

PCONP |=0x01L《《13; /*打開CAN控制器電源*/

PINSEL0&=~(Ox03L《《0); /*通道IRD*/

PINSEL0 |=(0xO1L《 PINSEL0&=~(Ox03L《《2); /*通道ITD*/

PINSEL0 |=(0x01L《《2);

。。.

addr=(unsigned long)(&CAN1BTR)+Ch*CANOFFSET;

RGE(addr)=Baud; /*獲取CH路的CANIBTR寄存器地址.并設定波特率*/

。。.

}

2.3 SD/MMC接口的初始化設計

SD接口的初始化在TASK0任務中進行.其功能通過調用SDCammand函數(shù)實現(xiàn)。SDCammand函數(shù)包括底層SD驅動程序和操作系統(tǒng)上層接口程序。SDCammand函數(shù)的關鍵代碼如下:

uint16 SDCammand(uint8 Cammand,void * Parameter)

{

/*定義相關變量*/

switch(cammand)

{

case DISK_INIT: /*設備初始化*/

SD_Initialize(&sds); /*完成SD卡的硬件初始化*/

case DISK_CLOSE: /*關閉驅動器.移除驅動程序*/

case DISK_READ_SECTOR:?/*讀扇區(qū)*/

case DISK_WRITE_SECTOR:?/*寫扇區(qū)*/

。。.

}

retum rt; /*rt負責返回各種底層驅動返回值*/

}

3 結語

詳細論述了基于ARM的汽車實驗數(shù)據(jù)海量存儲系統(tǒng)的軟件和硬件設計.該系統(tǒng)在以LPC2378微處理器和μC/OS一Ⅱ操作系統(tǒng)組成的平臺上完成了對汽車同步器實驗臺各項參數(shù)的采集、處理、存儲等功能。該系統(tǒng)性能穩(wěn)定可靠、實時性強、設計簡單.在實際應用中已達到了預期的效果。文中所述海量存儲系統(tǒng)也可應用于其它需要大量數(shù)據(jù)處理的工控實驗場合.具有參考意義。

本文作者創(chuàng)新點:1、采用LPC2378為系統(tǒng)控制單元核心;2、采用便攜,成本低廉的SD卡作為海量存儲單元;3、經實踐測試.本系統(tǒng)完全可應用于各類汽車工控實驗數(shù)據(jù)的存儲,經濟效益可觀。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    LPC2378應用模塊出售

    、RS-485、I2C、PWM、SPI、MINIBUS、ADC(10bit)、DAC(10bit),可用于工業(yè)控制、協(xié)議轉換、通訊前端等領域,提供kEIL環(huán)境下的驅動代碼、uC/OS-II的應用模板和相關的開發(fā)環(huán)境,價格面議。本
    發(fā)表于 11-22 16:20

    μCOS-II操作系統(tǒng)在各種處理上的移植

    的工作就是操作系統(tǒng)的移植。本文選取使用較多的51單片機、LPC2210、NiosII三種處理進行介紹。 1 μC/OS-II操作
    發(fā)表于 08-14 09:46

    嵌入式實時操作系統(tǒng)μC/OS-IILPC2378上怎么移植?

    操作系統(tǒng)及CPU是什么 μCOS-Ⅱ內核結構及工作原理嵌入式實時操作系統(tǒng)μC/OS-II
    發(fā)表于 04-26 06:32

    如何設計一個由LPC2378和MAX4357構成的嵌入式系統(tǒng)?

    本設計采用恩智浦公司(NXP)基于ARM7的微控制器LPC2378與美信公司(MAXIM)視頻矩陣切換芯片MAX4357構成嵌入式系統(tǒng),在μC/OS
    發(fā)表于 06-08 07:06

    LPC2300的UCOS II

    MicrimEmpowering Embedded SystemsC/OS-IIC/ProbeC/LCDand theNXP LPC2378
    發(fā)表于 06-26 17:00 ?32次下載

    μC/OS-II在MPC555微控制器上的應用

    以新一代微控制器MPC555 為硬件開發(fā)平臺, 實現(xiàn)嵌入式實時操作系統(tǒng)μC/OS-II 向MPC555硬件平臺的移植; 同時, 給出在此平臺下進行串行通信程序開發(fā)的示例。
    發(fā)表于 04-16 09:14 ?14次下載

    μC OS-II 在MPC555 微控制器上的應用

    以新一代微控制器MPC555 為硬件開發(fā)平臺, 實現(xiàn)嵌入式實時操作系統(tǒng)μC/OS-II 向MPC555硬件平臺的移植; 同時, 給出在此平臺下進行串行通信程序開發(fā)的示例。
    發(fā)表于 05-15 14:59 ?15次下載

    實時操作系統(tǒng)μC/OS-IILPC2210 上的移植研究

    嵌入式實時操作系統(tǒng)在目標處理平臺上的移植是嵌入式軟件開發(fā)的基礎和前提。論文實現(xiàn)了源碼公開的嵌入式實時操作系統(tǒng)μC/OS-II 在AR
    發(fā)表于 06-03 09:48 ?20次下載

    實時操作系統(tǒng)μC/OS-IILPC2210上的移植

    介紹了PHILIPS LPC2210 微控制器的特點,以及如何將源代碼開放的μC/OS-II 移植到此微控制器,重點介紹了如何通
    發(fā)表于 06-16 08:59 ?26次下載

    嵌入式μC/OS-IILPC2104上的移植及通信設計

    分析了μC/OS-II 操作系統(tǒng)的特點及其在嵌入式系統(tǒng)應用領域的優(yōu)勢,探討了μC/OS
    發(fā)表于 06-19 09:12 ?16次下載

    μC/OS-IILPC2210上的移植實現(xiàn)

    對嵌入式實時操作系統(tǒng)μC/OS-II 的組成和LPC2210 微處理進行了簡單介紹。在此基礎上,詳細介紹了將μ
    發(fā)表于 07-08 08:57 ?41次下載

    LPC2378管腳排列圖

    LPC2378管腳排列圖
    發(fā)表于 09-26 10:38 ?89次下載

    LPC2292和μC/OS-II的無線數(shù)據(jù)采集系統(tǒng)設計

    LPC2292和μC/OS-II的無線數(shù)據(jù)采集系統(tǒng)設計       無線
    發(fā)表于 04-20 13:55 ?979次閱讀
    <b class='flag-5'>LPC</b>2292和μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b>的無線<b class='flag-5'>數(shù)據(jù)</b>采集<b class='flag-5'>系統(tǒng)</b>設計

    LPC2378設計的數(shù)據(jù)采集系統(tǒng)

    本文介紹了以LPC2378為核心微處理設計成的 數(shù)據(jù)采集 系統(tǒng),給出了軟件和各模塊,接口設計。
    發(fā)表于 06-29 14:55 ?78次下載
    <b class='flag-5'>LPC2378</b>設計的<b class='flag-5'>數(shù)據(jù)</b>采集<b class='flag-5'>系統(tǒng)</b>

    基于SMTP的數(shù)據(jù)采集系統(tǒng)(LPC2378

    基于SMTP的數(shù)據(jù)采集系統(tǒng)(LPC2378
    發(fā)表于 09-29 11:45 ?12次下載
    基于SMTP的<b class='flag-5'>數(shù)據(jù)</b>采集<b class='flag-5'>系統(tǒng)</b>(<b class='flag-5'>LPC2378</b>