新聞中心

        EEPW首頁 > 醫療電子 > 設計應用 > 基于USB的便攜式醫療設備數據采集和傳輸系統設計

        基于USB的便攜式醫療設備數據采集和傳輸系統設計

        作者: 時間:2010-04-08 來源:網絡 收藏

          下位機工作在DOS狀態,軟件程序采用BORLANDC語言。主要工作是初始化CH375、查詢中斷及中斷處理。相關程序代碼如下:

          (1)處理接收數據的中斷服務程序

          void interrupt (__CPPARGS)

          {

           unsigned char len,i;

           //獲取中斷狀態并取消中斷請求

          CH375WriteCmd(0x22);

           d0=CH375ReadData(); //讀回狀態

          if((d0==0x02)||(d0==0x01)) //批量端點2接收到PC機發送的數據

          {//讀取數據}

           inportb(0x21);

           outportb(0x20,0x20); //發EOI命令,

           清除中斷

        }

        (2)寫數據子程序

        void CH375WriteData( unsigned char dat )

        {

        /* 寫數據口 */

        outportb( PortBaseAddr + 0, dat );

        DelayuS( 1 );

        }

        (3)讀數據子程序

        unsigned char CH375ReadData( void )

        {

        unsigned char d;

        DelayuS( 1 );

        /* 讀數據口 */

        d = inportb( PortBaseAddr + 0 );

        return( d );

        }

        (4)主程序

        int main(int argc,char *argv[])

        {

        ..................

        for(;;) //等待

        {//軟件進入主循環,處理突發事件

        while(kbhit()) ch=getch();

        if(ch==27) break;

        if(ch==59){.//向PC機發送數據}

        if(ch==60){//寫中斷特征數據}

        readbuf(); //讀接口緩沖區數據

        }

        ..................

        }

        4上位機中的程序設計

        因為CH375的動態鏈接庫DLL提供了許多API接口函數,所以應用程序只需通過幾條簡單的文件操作API函數,就可以實現與下位機的通信。

        又因CH375的動態鏈接庫DLL提供了偽中斷服務(實際的中斷服務仍然是在驅動程序庫完成的,只是在完成后向DLL發個通知,再由DLL再調用偽中斷服務子程序),基于此,系統采用了偽中斷服務來實現數據的上傳,這不僅縮短了系統的開發周期,而且很好地滿足了下位機的實時性要求。上傳數據的程序流程圖如圖2所示。

        數據的下傳只需用簡單的下傳API發送數據。由CH375中斷接收即可。

        上位PC機工作在Windows環境下,我們采用Visual C++6.0語言編程。具體程序實現如下:

        (1)初始化PC104-USB卡

        在這里完成對設備的初始化,如CH375DLL.DLL文件的加載、設備的成功打開、緩沖區的清理、數據的上傳模式、設置偽中斷服務程序等。

        助聽器原理相關文章:助聽器原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 焦作市| 涡阳县| 宁乡县| 长兴县| 石渠县| 鸡泽县| 山东省| 盐津县| 乌拉特中旗| 郯城县| 临沂市| 荣昌县| 金川县| 新津县| 随州市| 桂阳县| 济阳县| 乾安县| 东乌珠穆沁旗| 浪卡子县| 海南省| 胶南市| 余江县| 黑河市| 沧州市| 百色市| 绥滨县| 宁城县| 呈贡县| 高邮市| 宕昌县| 鲁山县| 青海省| 静乐县| 齐河县| 枝江市| 富民县| 桑日县| 台湾省| 绥滨县| 宝应县|