引言
隨著科學(xué)技術(shù)的不斷發(fā)展.?dāng)?shù)據(jù)的存儲(chǔ)和傳輸在嵌入式系統(tǒng)有了越來越重要的地位。海量數(shù)據(jù)存儲(chǔ)是當(dāng)前科技發(fā)展中的—個(gè)熱點(diǎn)領(lǐng)域.它的應(yīng)用也變的日益廣泛。
設(shè)計(jì)嵌入式海量數(shù)據(jù)采集存儲(chǔ)系統(tǒng)首先需要考慮的問題是軟硬件接口的設(shè)計(jì)。只有軟硬件接口定義清晰.協(xié)同工作順利。才能保證軟件與硬件組合為一個(gè)系統(tǒng)。軟硬件接口設(shè)計(jì)又分為2個(gè)具體的問題:一是硬件接口連線的定義是否合理;二是軟件上如何正確地收、發(fā)信息以及交換數(shù)據(jù)。必須選擇合理的CPU來解決這兩個(gè)問題。ARM核CPU以其高性能、小體積、低功耗和多供應(yīng)源的出色結(jié)合而著名.它的另—個(gè)顯著優(yōu)點(diǎn)是易移植各種嵌人式實(shí)時(shí)操作系統(tǒng).對(duì)于海量存儲(chǔ)系統(tǒng),這是非常必要的。此外,SD卡存儲(chǔ)技術(shù).目前設(shè)計(jì)成熟、應(yīng)用廣泛目使用極為簡捷。
因此,本設(shè)計(jì)選擇基于ARM的嵌入式結(jié)構(gòu)作為海量存儲(chǔ)的控制系統(tǒng).使用高效便捷的CAN-BUS作為數(shù)據(jù)采集通道.采用SD卡作為存儲(chǔ)介質(zhì).同時(shí)也為以后進(jìn)一步完善系統(tǒng)功能提供了良好的解決方案。下面將圍繞基于ARM的汽車實(shí)驗(yàn)數(shù)據(jù)海量存儲(chǔ)系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)展開論述。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)總體設(shè)計(jì)
通過分析系統(tǒng)的功能,根據(jù)模塊的實(shí)際需要,設(shè)計(jì)中選用了具有CAN-BUS以及SD/MMC卡管理功能的高性能ARM處理器:LPC2378。LPC2378是一款基于ARM7的微控制器,十分適用于需要串行通信的場(chǎng)合.且其內(nèi)部包含CAN通道。所以需要考慮針對(duì)CAN總線的接口設(shè)計(jì)及其隔離電路的設(shè)計(jì)(詳述見下文)。在它的基礎(chǔ)上.再配上電源以及存儲(chǔ)器等芯片,就構(gòu)成了一個(gè)完整的嵌入式系統(tǒng)。系統(tǒng)總體框圖如圖1所示:
圖1 系統(tǒng)總體框圖
1.2 SD存儲(chǔ)卡接口設(shè)計(jì)
本次方案選定的LPC2378微控制器內(nèi)部帶有SD卡控制器,支持SD卡的SD總線模式.因此.我們可以直接使用該控制器來訪問卡。接口電路(如圖2所示)包括4個(gè)部分:
圖2 SD存儲(chǔ)卡接口電路
1.SD總線:如圖所示。微控制器的P0.22、P2.11、P2.12、P2.13、P0.20根據(jù)引腳功能.直接連接到卡座的相應(yīng)接口。
2.SD卡ESD保護(hù)電路:如圖所示.在卡座的數(shù)據(jù)總線DAT0-DAT3、時(shí)鐘線CLK和命令線CMD上.使用了—個(gè)ESD保護(hù)器件PESD5VOL6U。這是—個(gè)專用于SD/MMC卡的ESD保護(hù)器件。它的作用是:當(dāng)卡插人或拔出時(shí),保護(hù)卡不受高壓靜電的損害。
3.卡供電控制:用可控方式給卡供電,這是為了防止SD卡進(jìn)入不確定狀態(tài)時(shí),可以通過重新上電給卡復(fù)位。可控電路采用P型MOS管2SJ355.由ARM的GPIO口 P0.25進(jìn)行控制。當(dāng)P0.25輸出高電平時(shí)。2SJ355斷開卡的電源;當(dāng)P0.25輸出低電平時(shí),2SJ355導(dǎo)通VCC3.3電源給卡供電。采用2sJ355的目的是當(dāng)它開通時(shí)。管子上的壓降比較小.在保證SD/MMC卡工作允許電壓的情況下。也可以使用其它P型的MOS管。
4.卡檢測(cè)電路:卡檢測(cè)電路包括兩部分.卡是否完全插入到卡座中和卡是否寫保護(hù)。檢測(cè)信號(hào)以兩個(gè)引腳的電平方式輸出。當(dāng)卡插入到位時(shí).卡座的CARD—INSERT腳由于卡座內(nèi)部觸點(diǎn)連接到GND,輸出低電平:當(dāng)卡拔出時(shí).該引腳由于上掩電阻的存在而輸出高電平。該輸出由ARM的輸入引腳P2.5來檢測(cè)。卡是否寫保護(hù)的檢測(cè)原理與此相同。
2 系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)
鑒于本系統(tǒng)的高實(shí)時(shí)性要求.在模塊軟件設(shè)計(jì)前首先在LPC2378上移植了μC/OS-II。μc/OS-II是一個(gè)高性能的嵌入式實(shí)時(shí)操作系統(tǒng)。能高效地實(shí)現(xiàn)任務(wù)切換、任務(wù)調(diào)度、任務(wù)問通信、同步、互斥、實(shí)時(shí)時(shí)鐘管理、中斷管理等功能。μC/OS-II也是—個(gè)移植性很強(qiáng)的操作系統(tǒng).系統(tǒng)移植時(shí)只需要修改和硬件有關(guān)的源代碼即可。
2.1 系統(tǒng)軟件流程
使用定時(shí)中斷方式采集CAN總線中的數(shù)據(jù)。在μC/OS-Ⅱ主函數(shù)中建立一個(gè)空閑任務(wù)TASK0.配置和初始化定時(shí)器0和實(shí)時(shí)時(shí)鐘,啟動(dòng)多任務(wù)操作系統(tǒng).并記錄其啟動(dòng)時(shí)間。接著在TASK0任務(wù)中初始化ADC、定時(shí)器等系統(tǒng)硬件,創(chuàng)建控制、存儲(chǔ)采樣信息的信號(hào)量和消息郵箱.并創(chuàng)建SD卡文件寫入任務(wù)、采樣任務(wù)和FS文件管理系統(tǒng)任務(wù)。其中,文件管理任務(wù)的優(yōu)先級(jí)最高.SD卡寫入任務(wù)最低。而采樣任務(wù)是由中斷服務(wù)程序(ISR)控制的.定時(shí)器時(shí)間到后,觸發(fā)中斷,ISR即發(fā)送信號(hào)量給采樣任務(wù),隨即開始一次硬件采樣。SD卡文件寫入任務(wù)和采樣任務(wù)的流程圖分別如圖3、圖4所示。
圖3 SD卡文件寫入任務(wù)流程圖
圖4 采樣任務(wù)流程圖
在采樣中有兩個(gè)問題需要注意.首先是所有的采樣值都必須加上采樣時(shí)問的數(shù)據(jù),方便后期的實(shí)驗(yàn)結(jié)果分析.所以在硬件設(shè)計(jì)中使用到了LPC2378的實(shí)時(shí)時(shí)鐘功能(RTC)。第二個(gè)問題是FS文件系統(tǒng)管理任務(wù)在控制SD卡寫入任務(wù)時(shí).是以ASCII碼的形式往SD卡中寫入數(shù)據(jù),因此在數(shù)據(jù)存儲(chǔ)前比較將A/D采樣結(jié)果轉(zhuǎn)換成ASCⅡ碼。
2.2 CAN總線初始化設(shè)計(jì)
CAN控制器的寄存器比較多.但其通信流程與常規(guī)通信接口UART大體是一致的.所以初始化CAN的過程,包括對(duì)CAN的時(shí)鐘頻率.CAN的引腳一級(jí)波特率的設(shè)置等。需要注意的是。所有設(shè)置必須要在CAN控制器處于復(fù)位模式下時(shí)進(jìn)行。
初始化CAN控制器使用函數(shù)CAN_Init().它包括了兩路的CAN控制器的同時(shí)配置。
CAN總線的初始化程序關(guān)鍵代碼:
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寄存器地址.并設(shè)定波特率*/
。。.
}
2.3 SD/MMC接口的初始化設(shè)計(jì)
SD接口的初始化在TASK0任務(wù)中進(jìn)行.其功能通過調(diào)用SDCammand函數(shù)實(shí)現(xiàn)。SDCammand函數(shù)包括底層SD驅(qū)動(dòng)程序和操作系統(tǒng)上層接口程序。SDCammand函數(shù)的關(guān)鍵代碼如下:
uint16 SDCammand(uint8 Cammand,void * Parameter)
{
/*定義相關(guān)變量*/
switch(cammand)
{
case DISK_INIT: /*設(shè)備初始化*/
SD_Initialize(&sds); /*完成SD卡的硬件初始化*/
case DISK_CLOSE: /*關(guān)閉驅(qū)動(dòng)器.移除驅(qū)動(dòng)程序*/
case DISK_READ_SECTOR:?/*讀扇區(qū)*/
case DISK_WRITE_SECTOR:?/*寫扇區(qū)*/
。。.
}
retum rt; /*rt負(fù)責(zé)返回各種底層驅(qū)動(dòng)返回值*/
}
3 結(jié)語
詳細(xì)論述了基于ARM的汽車實(shí)驗(yàn)數(shù)據(jù)海量存儲(chǔ)系統(tǒng)的軟件和硬件設(shè)計(jì).該系統(tǒng)在以LPC2378微處理器和μC/OS一Ⅱ操作系統(tǒng)組成的平臺(tái)上完成了對(duì)汽車同步器實(shí)驗(yàn)臺(tái)各項(xiàng)參數(shù)的采集、處理、存儲(chǔ)等功能。該系統(tǒng)性能穩(wěn)定可靠、實(shí)時(shí)性強(qiáng)、設(shè)計(jì)簡單.在實(shí)際應(yīng)用中已達(dá)到了預(yù)期的效果。文中所述海量存儲(chǔ)系統(tǒng)也可應(yīng)用于其它需要大量數(shù)據(jù)處理的工控實(shí)驗(yàn)場(chǎng)合.具有參考意義。
本文作者創(chuàng)新點(diǎn):1、采用LPC2378為系統(tǒng)控制單元核心;2、采用便攜,成本低廉的SD卡作為海量存儲(chǔ)單元;3、經(jīng)實(shí)踐測(cè)試.本系統(tǒng)完全可應(yīng)用于各類汽車工控實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ),經(jīng)濟(jì)效益可觀。
責(zé)任編輯:gt
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7173瀏覽量
125854 -
存儲(chǔ)系統(tǒng)
+關(guān)注
關(guān)注
2文章
423瀏覽量
41415 -
嵌人式
+關(guān)注
關(guān)注
0文章
10瀏覽量
7588
發(fā)布評(píng)論請(qǐng)先 登錄
LPC2378應(yīng)用模塊出售
μC/OS-II操作系統(tǒng)在各種處理器上的移植
嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II在LPC2378上怎么移植?
如何設(shè)計(jì)一個(gè)由LPC2378和MAX4357構(gòu)成的嵌入式系統(tǒng)?
LPC2300的UCOS II
μC/OS-II在MPC555微控制器上的應(yīng)用
μC OS-II 在MPC555 微控制器上的應(yīng)用
實(shí)時(shí)操作系統(tǒng)μC/OS-II 在LPC2210 上的移植研究
實(shí)時(shí)操作系統(tǒng)μC/OS-II在LPC2210上的移植
嵌入式μC/OS-II在LPC2104上的移植及通信設(shè)計(jì)
μC/OS-II 在LPC2210上的移植實(shí)現(xiàn)
LPC2292和μC/OS-II的無線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

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

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

評(píng)論