新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于雙模式USB接口的多處理器數據采集系統設計

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

        作者: 時間:2010-09-03 來源:網絡 收藏
        從控單片機組共有4片STC12C5A60S2,每片第一串口與主控機相連,實現主、從機數據與控制傳輸。其中3片經并行口、1片經第二串行口與隨動數控電路通訊。從控機與隨動系統數控電路進行并口通訊的各信號線包括:8 bit數據總線D0~D7,通訊啟動信號START,應答信號ACK,同步信號SYN,中斷信號INT。
         系統工作模式由主控單片機外接鍵盤動態切換。開機后默認工作于主機模式,等待存儲設備連接。單片機檢測存儲設備連接并判斷符合要求后,系統可正常測試采集數據,并轉存于外接存儲設備,供后期導入PC機分析處理。測試條件允許時,也可將系統設置為與PC機直接相連的從機模式。這時,數據采集過程完全由上位機控制,可實現較為復雜的性能參數與故障分析測試,提高工作效率。
        3 系統軟件設計
        使用51系列兼容單片機C語言編程軟件Keil uVision3編寫單片機程序,完成數據采集、通訊控制、數據處理等功能。主程序流程如圖3所示。

        本文引用地址:http://www.104case.com/article/187811.htm

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

        采用Keil編寫U盤操作程序時,需要將CH375HF6.LIB庫文件和CH375HF6.H添加到項目中。主機模式單片機程序基本框架如下:
        CH375_WR_CMD_PORT(CMD_SET__MODE);
        //設置USB工作模式
        CH375_WR_DAT_PORT(6);
        //模式代碼,已啟用的USB主機模式 DelayuS(20);

        //延時
        while(CH375DiskConnect( )!=ERR_SUCCESS)
        //查詢U盤是否連接
        DelaymS(200); //延時,等待U盤工作正常
        while(CH375DiskReady( )!=ERR_SUCCESS)
        //檢查U盤是否準備好
        ……
        CH375DiskQuery( );
        //查詢U盤信息:總容量、剩余容量、文件系統
        ……
        while ( i!=ERR_SUCCESS )
        {strcpy( mCmdParam.Open.mPathName, TEST );
        //目錄名
        i=CH375FileOpen( );} //打開目錄
        while(i!=ERR_SUCCESS)
        {strcpy(mCmdParam.Open.mPathName,TestData);
        //輸入文件名
        i=CH375FileOpen( ); } //打開文件
        ……
        mCmdParam.Write.mSectorCount=SecCount;
        //寫入所有扇區的數據
        current_buffer= FILE_DATA_BUF[0];
        //設置存放數據的緩沖區的起始地址
        CH375FileWrite( ); //向文件寫入數據
        ……
        CH375FileClose( ); //關閉文件



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 青州市| 额尔古纳市| 兴海县| 石泉县| 宝兴县| 麻阳| 萨嘎县| 永新县| 呼和浩特市| 陵水| 郎溪县| 永善县| 宝鸡市| 吴堡县| 辽源市| 天祝| 陕西省| 蒙山县| 施秉县| 荔波县| 汝城县| 奉化市| 肇州县| 康保县| 中山市| 呼伦贝尔市| 龙胜| 原阳县| 游戏| 荥经县| 靖州| 贵溪市| 贵港市| 喀什市| 万安县| 武胜县| 麻阳| 台中县| 朝阳区| 汤原县| 赣榆县|