基于雙模式USB接口的多處理器數據采集系統

發(fā)布時(shí)間:2011-1-26 18:32    發(fā)布者:conniede
關(guān)鍵詞: CH375 , USB , 處理器 , 單片機
現代軍事、工業(yè)自動(dòng)化設備功能不斷完善、集成化程度越來(lái)越高,這就對配套的數據采集以及檢測系統提出了更高要求。特別是條件惡劣、野外以及空間狹小封閉的測試環(huán)境中,不僅要求系統能夠快速穩定地完成數據采集,同時(shí)更需要將采集的數據保存于大容量存儲設備中,方便后續的分析處理。目前,由于高速率、低成本、易擴展的優(yōu)點(diǎn),USB總線(xiàn)已成為計算機與外設之間數據交換的主流總線(xiàn)協(xié)議。采用USB接口的各種大容量移動(dòng)存儲設備具有高速、抗震、穩定的優(yōu)點(diǎn),特別適用于以上的數據采集場(chǎng)合。

本文采用USB總線(xiàn)接口芯片CH375設計了具有主/從雙模式的多單片機數據采集系統,既能完成與上位機的實(shí)時(shí)通訊,也可在環(huán)境條件惡劣時(shí)作為便攜式系統完成采集數據在USB移動(dòng)存儲設備上的轉存。

1 雙模式USB接口芯片CH375簡(jiǎn)介

CH375是南京沁恒有限公司生產(chǎn)的USB總線(xiàn)通用接口芯片,支持USB-HOST主機方式與USB-DEVICE/SLAVE設備方式,并可動(dòng)態(tài)切換。CH375具有8 bit數據總線(xiàn),讀、寫(xiě)、片選控制以及中斷輸出,可以方便地掛接到單片機等控制器的系統總線(xiàn)上。主機模式下,芯片還提供了串行通訊方式,控制器可以通過(guò)串口操作USB移動(dòng)存儲設備。此外,CH375內置了處理Mass-Storange海量存儲設備的專(zhuān)用通訊協(xié)議固件,支持常用的USB全速設備,兼容USB2.0設備(U盤(pán)、閃盤(pán)以及USB移動(dòng)硬盤(pán))。外部控制器可以通過(guò)該芯片直接以扇區為單位進(jìn)行讀寫(xiě)操作控制。如果需要處理與PC機兼容的文件系統,可以利用廠(chǎng)家提供的C語(yǔ)言子程序庫實(shí)現USB存儲設備的文件級接口,從而降低開(kāi)發(fā)難度、節約成本。

2 硬件系統設計

本文介紹的數據采集系統用于某型數字式隨動(dòng)系統的性能測試,其硬件框圖如圖1所示。


系統硬件主要由主控單片機、信號調理模塊、USB通訊模塊、從控單片機組以及鍵盤(pán)顯示模塊五部分構成。工作時(shí),先由主控單片機向從控單片機組發(fā)出測試開(kāi)始指令,從控單片機組完成與被測隨動(dòng)系統數控電路的通訊,一方面測試通訊情況是否正常,另一方面維持隨動(dòng)系統正常工作。通訊測試結果經(jīng)串行口由從控機組送回主控機,作為性能測試的部分結果數據。隨動(dòng)系統正常運行后,信號調理模塊將被測信號濾波整理,分批送入主控單片機的ADC輸入端,主控單片機經(jīng)CH375將被測數據寫(xiě)入USB存儲設備或發(fā)送至PC機直接處理。

基于USB主機模式下文件級子程序庫編程的需要,主控單片機采用宏晶科技有限公司的STC12C5A60S2。該單片機工作頻率可達35 MHz,具有1280 B片內RAM數據存儲器與60 KB片內Flash程序存儲器,8通道10 bit高速ADC,2個(gè)全雙工異步串行口,完全滿(mǎn)足數據采集與CH375主/從雙模式的控制要求。

USB主機接口電路如圖2所示。CH375芯片工作于并口方式,將其TXD引腳接地,并行接口掛接到單片機系統總線(xiàn)上。其8 bit雙向數據總線(xiàn)D0~D7直接與單片機的P0數據總線(xiàn)相連,地址輸入線(xiàn)A0,讀、寫(xiě)選通引腳RD、WR和片選信號CS,分別連接至單片機的P5.0~5.3引腳。中斷請求輸出INT連接到單片機的中斷輸入INT0引腳,中斷請求為低電平有效。


從控單片機組共有4片STC12C5A60S2,每片第一串口與主控機相連,實(shí)現主、從機數據與控制傳輸。其中3片經(jīng)并行口、1片經(jīng)第二串行口與隨動(dòng)數控電路通訊。從控機與隨動(dòng)系統數控電路進(jìn)行并口通訊的各信號線(xiàn)包括:8 bit數據總線(xiàn)D0~D7,通訊啟動(dòng)信號START,應答信號ACK,同步信號SYN,中斷信號INT。

系統工作模式由主控單片機外接鍵盤(pán)動(dòng)態(tài)切換。開(kāi)機后默認工作于主機模式,等待USB存儲設備連接。單片機檢測存儲設備連接并判斷符合要求后,系統可正常測試采集數據,并轉存于外接存儲設備,供后期導入PC機分析處理。測試條件允許時(shí),也可將系統設置為與PC機直接相連的從機模式。這時(shí),數據采集過(guò)程完全由上位機控制,可實(shí)現較為復雜的性能參數與故障分析測試,提高工作效率。

3 雙模式系統軟件設計

使用51系列兼容單片機C語(yǔ)言編程軟件Keil uVision3編寫(xiě)單片機程序,完成數據采集、通訊控制、數據處理等功能。主程序流程如圖3所示。


3.1 主機模式程序設計

廠(chǎng)家提供了適用于單片機操作U盤(pán)的文件級子程序庫CH375HF6.LIB,將主機模式下處理USB存儲設備的API進(jìn)行了封裝,支持FAT12、FAT16和FAT32文件系統。該文件級子程序庫的所有API函數在調用后都有操作狀態(tài)返回,但不一定有應答數據,API參數在CH375HF6.H文件內進(jìn)行說(shuō)明。調用的API子程序主要有:芯片初始化CH375Init( ),查詢(xún)設備準備好CH375DiskReady(),查詢(xún)存儲設備信息CH375DiskQuery(),新建文件CH375FileCreate(),打開(kāi)文件CH375FileOpen(),寫(xiě)文件數據CH375ByteWrite(),關(guān)閉文件CH375FileClose()等。操作U盤(pán)存儲采集數據的程序流程如圖4所示。


采用Keil編寫(xiě)U盤(pán)操作程序時(shí),需要將CH375HF6.LIB庫文件和CH375HF6.H添加到項目中。主機模式單片機程序基本框架如下:

CH375_WR_CMD_PORT(CMD_SET_USB_MODE);

//設置USB工作模式

CH375_WR_DAT_PORT(6);

//模式代碼,已啟用的USB主機模式 DelayuS(20);

//延時(shí)

while(CH375DiskConnect( )!=ERR_SUCCESS)

//查詢(xún)U盤(pán)是否連接

DelaymS(200); //延時(shí),等待U盤(pán)工作正常

while(CH375DiskReady( )!=ERR_SUCCESS)

//檢查U盤(pán)是否準備好

……

CH375DiskQuery( );

//查詢(xún)U盤(pán)信息:總容量、剩余容量、文件系統

……

while ( i!=ERR_SUCCESS )

{strcpy( mCmdParam.Open.mPathName, "\\TEST" );

//目錄名

i=CH375FileOpen( );} //打開(kāi)目錄

while(i!=ERR_SUCCESS)

{strcpy(mCmdParam.Open.mPathName,TestData);

//輸入文件名

i=CH375FileOpen( ); } //打開(kāi)文件

……

mCmdParam.Write.mSectorCount=SecCount;

//寫(xiě)入所有扇區的數據

current_buffer=& FILE_DATA_BUF[0];

//設置存放數據的緩沖區的起始地址

CH375FileWrite( ); //向文件寫(xiě)入數據

……

CH375FileClose( ); //關(guān)閉文件

3.2 從機模式

此模式下,單片機通過(guò)CH375與PC機進(jìn)行通訊,完成采集方案下載與數據上傳,程序流程圖如圖5所示。


單片機重新初始化CH375并設置為設備工作模式。測試芯片正常連接后,系統可接收PC機發(fā)送的數據。主控單片機根據下載的采集方案進(jìn)行采集測試,并將結果數據存入采集緩沖區,待緩沖區滿(mǎn),則向PC機請求上傳。采集結束,數據全部上傳,系統完成一個(gè)從機模式采集工作過(guò)程。從機模式單片機程序基本框架如下:

CH375Init(); //初始化CH375

DelaymS(50); //延時(shí)

CH375_WR_CMD_PORT(CMD_SET_USB_MODE);

//設置USB工作模式

CH375_WR_DAT_PORT(2);

//模式代碼,已啟用的內置固件USB設備模式 DelayuS(20);

//延時(shí)

CH375_WR_CMD_PORT(CMD_CHECK_EXIST);

//測試工作狀態(tài)

CH375_WR_DAT_PORT(0x57); //寫(xiě)入測試數據 DelayuS(10);

//延時(shí)

If(CH375_RD_DAT_PORT( )==0xA8);

//讀出測試數據是否按位取反,判斷工作狀態(tài)

……

CH375_WR_CMD_PORT(CMD_GET_STATUS);

//中斷子程序中,讀取中斷狀態(tài)命令

int_sn=CH375_RD_DAT_PORT( ); //讀中斷號 ……

if (int_sn ==USB_INT_USB_EP2_OUT)

CH375_WR_CMD_PORT(CMD_RD_USB_DATA);

//讀取上位機測試方案數據并釋放緩沖區

……

test_all( ); //按下載方案測試采集數據

……

While (flag_upload == 0) //數據上傳未結束

{

……

CH375_WR_CMD_PORT(CMD_WR_USB_DATA 7);

//批量上傳采集數據

CH375_WR_DAT_PORT(n); //寫(xiě)入上傳字節數

for (i=0;i<n;i++) //每次上傳n字節

CH375_WR_DAT_PORT(*test_buf ++);

//上傳采集結果,指針自動(dòng)加1

……

}

……

if (int_sn ==USB_INT_USB_EP2_IN)

//中斷子程序中,中斷號為端點(diǎn)2發(fā)送數據完畢

CH375_WR_CMD_PORT(CMD_UNLOCK_USB);

//釋放緩沖區

基于CH375雙模式USB接口芯片,設計完成了主/從雙模式的數據采集測試系統。充分利用接口即插即用、便攜式的特點(diǎn),解決了特殊環(huán)境下的測試困難問(wèn)題。同時(shí),系統具有雙模式、多單片機的優(yōu)勢,能夠滿(mǎn)足高標準的測試需求,具有廣闊的應用前景。
本文地址:http://selenalain.com/thread-50842-1-1.html     【打印本頁(yè)】

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

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页