基于雙模式USB接口的多處理器數據采集系統
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;in;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)足高標準的測試需求,具有廣闊的應用前景。
評論