關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > USB總線在遠程抄表系統中的應用

        USB總線在遠程抄表系統中的應用

        作者: 時間:2009-12-22 來源:網絡 收藏


          在主程序中完成對系統、PDID12的初始化,以及完成對d12的枚舉,將數據的發送接收都放在中斷程序中。PDID12有3組端點,使用默認端點0和端點2。將端點2作為數據傳輸的通道,當PDID12從USB收到一個數據包時,就對CPU產生一個外部中斷請求,CPU立即相應中斷,在中斷服務子程序中,將數據包從PDIUSBD12內部緩沖區移到循環數據緩沖區中,隨后清零PDIUSBD12的內部緩沖區,對數據校驗,如果接收得數據正確,直接調用RS485數據發送子程序,將數據發送到RS485網絡。

          3.3 計算機軟件設計:

          計算機軟件主要包括,驅動的設計,動態連接庫的設計。驅動程序采用飛利浦提供的驅動,上位機程序使用api函數并封裝RS485的上層協議,提供給用戶使用的接口。本例采用VC編寫用戶程序和動態連接庫。從驅動中讀數據的程序如下,

          void readdata(unsigned char *rec)

          { unsigned char outbuf[105];

          HANDLE hFile, hDevice=0;

          BOOL bResult;

          ULONG nBytes = 25;

          hFile = open_file(PIPE02);

          if(hFile == INVALID_HANDLE_VALUE)

          {return;}

          hDevice = open_dev();

          bResult = ReadFile(hFile,outbuf,10,nBytes,NULL);

          if(bResult==FALSE)

          { DeviceIoControl(hFile,IOCTL_D12_RESET_PIPE,0,0,0,0,nBytes,NULL); }

          CloseHandle(hFile);

          CloseHandle(hDevice);

          }

          在使用這個函數的時候,只需要添加如下說明。

          extern C DllImport void readdata ( unsigned char * );

          4 結 論

          由于采用了USB,克服了原來使用RS232接口速度慢的瓶頸,提高了的數據傳輸速率,該方案已經成功的得到應用,穩定可靠,有廣闊的應用前景。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 杨浦区| 尚志市| 玉龙| 丹东市| 彰武县| 广宁县| 仙居县| 宜春市| 柞水县| 宁城县| 昔阳县| 上犹县| 涟源市| 恩平市| 虞城县| 宁波市| 米易县| 广宁县| 临湘市| 抚松县| 平利县| 青神县| 峡江县| 昌图县| 延长县| 安丘市| 讷河市| 镇远县| 赤峰市| 九寨沟县| 高安市| 民丰县| 上栗县| 平乐县| 通州区| 二连浩特市| 甘洛县| 高邑县| 沽源县| 高阳县| 突泉县|