新聞中心

EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于雙模式USB接口的多處理器數(shù)據(jù)采集系統(tǒng)

基于雙模式USB接口的多處理器數(shù)據(jù)采集系統(tǒng)

作者: 時(shí)間:2010-08-26 來源:網(wǎng)絡(luò) 收藏

  3.2 從機(jī)模式

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

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

  CH375Init(); //初始化CH375

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

  CH375_WR_CMD_PORT(CMD_SET_USB_MODE);

  //設(shè)置USB工作模式

  CH375_WR_DAT_PORT(2);

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

  //延時(shí)

  CH375_WR_CMD_PORT(CMD_CHECK_EXIST);

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

  CH375_WR_DAT_PORT(0x57); //寫入測(cè)試數(shù)據(jù) DelayuS(10);

  //延時(shí)

  If(CH375_RD_DAT_PORT( )==0xA8);

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

  ……

  CH375_WR_CMD_PORT(CMD_GET_STATUS);

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

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

  if (int_sn ==USB_INT_USB_EP2_OUT)

  CH375_WR_CMD_PORT(CMD_RD_USB_DATA);

  //讀取上位機(jī)測(cè)試方案數(shù)據(jù)并釋放緩沖區(qū)

  ……

  test_all( ); //按下載方案測(cè)試采集數(shù)據(jù)

  ……

  While (flag_upload == 0) //數(shù)據(jù)上傳未結(jié)束

  {

  ……

  CH375_WR_CMD_PORT(CMD_WR_USB_DATA 7);

  //批量上傳采集數(shù)據(jù)

  CH375_WR_DAT_PORT(n); //寫入上傳字節(jié)數(shù)

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

  CH375_WR_DAT_PORT(*test_buf ++);

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

  ……

  }

  ……

  if (int_sn ==USB_INT_USB_EP2_IN)

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

  CH375_WR_CMD_PORT(CMD_UNLOCK_USB);

  //釋放緩沖區(qū)

  基于CH375接口芯片,設(shè)計(jì)完成了主/從雙模式的測(cè)試系統(tǒng)。充分利用接口即插即用、便攜式的特點(diǎn),解決了特殊環(huán)境下的測(cè)試?yán)щy問題。同時(shí),系統(tǒng)具有雙模式、多單片機(jī)的優(yōu)勢(shì),能夠滿足高標(biāo)準(zhǔn)的測(cè)試需求,具有廣闊的應(yīng)用前景。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉