国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發布時間:2010-8-17 13:21    發布者:lavida
關鍵詞: USB , 遠程抄表
1 前 言  

隨著供水部門、供電部門、供氣部門對“一戶一表”工程改造的推進,以及對自動化的要求,遠程自動抄表系統已成為水、電、氣自動化管理和智能化控制不可缺少的組成部分。  

采用集中抄表系統能夠杜絕人工抄表產生的誤抄、漏抄、估抄等人為錯誤,提高工作效率,減輕勞動強度,減員增效。一般抄表系統采用RS485總線,然后通過485/232模塊與監控計算機連接,計算機通過串口輪巡采集電表數據。由于串口速度慢,這成為抄表系統傳輸速率提高的瓶頸,而使用485/usb模塊,能很好的解決這個問題,USB 1.1規范的最高傳輸速率為12 Mb/s。USB總線除了用于外圍設備和PC機之間的連接之外,在其它領域也有廣泛應用,包括測量和自動化應用。  

2 硬件設計:  

模塊的硬件包括: 微控制器、RS485 總線通信接口和USB 通信接口,如圖1:  


  
RS485定義了一個基于單對平衡線的多點、雙向(半雙工)通信鏈路,采用平衡式發送,差分式接收的數據收發器來驅動總線,每次通信只能有一個主站,適合輪巡方式通信。RS485收發器采用TI公司的75LBC184,它使用單電源供電,電壓在+3-+5.5V范圍都能正常工作,能完成TTL與RS485之間的轉換。在電路中,使用了TLP521進行隔離,提高了系統的可靠性。  

USB 通信接口采用PDIUSBD12,負責與上位機和微處理器進行信息交換。PDIUSBD12是Philips公司推出的一種價格便宜、功能完善的USB并行接口芯片,支持多路復用、非多路復用和DMA并行傳輸,它遵從USB1.1協議,適合于不同用途的傳輸類型。PDIUSBD12需要外接微控制器來進行協議處理和數據交換,對MCU沒有特殊要求,接口方便靈活。微處理器采用P89C51RD 單片機。  

3 系統軟件設計:  

3.1 RS485軟件子程序設計:  


  
RS485軟件編程非常簡單,它使用處理器的串口。數據到來時存放到串口緩沖區中,并產生串口中斷。  

RS485協議只是物理層,上層協議需要用戶自己定義。 由于介紹RS485總線的文章很多,其他程序略。  

3.2 USB軟件設計:  

USB設備與主機通過四根線連接,電源、地,以及兩根數據線,該模塊使用計算機提供的5v電源。連接速度由D+ , D-連線上的電阻位置決定的, 如果D+ 線上有上拉電阻, USB 設備為全速設備,如果D-連線上有上拉電阻, 則USB 設備為低速設備。PDIUSBD12 的softconnect 技術在片內集成了1.5k的上拉電阻, 可以通過微處理器發送命令來控制D+上的上拉電阻是否與電源連接。  

在usb設備中,我們使用描述符區別不同的設備、端口等。描述符主要包括設備描述符、配置描述符、接口描述符,在設備中預先設置這些參數,主機通過對這些描述符的讀取,獲得該設備的信息。  

當一個設備剛插入計算機時,主機需要對該設備枚舉,讀取該設備的相關參數,首先使用默認的設備地址0進行通信。主機端先向設備地址0,端點0發送Get_Descriptor(獲取描述符)請求來查詢接入什么樣的設備,設備使用設備描述符回答,然后通過發送Set_Address(設定地址)請求來分配一個單獨的地址給設備。設備讀取這個請求,返回一個確認且保存新的地址。主機給新地址發送一個Get_Descriptor請求來讀取這個設備完整的描述符,包括端點最大包的大小,設備支持的配置號,以及該設備的其它信息,主機將這些信息用于往后的通信中。而后發出Get_configuration_Descriptor(獲取配置描述符)命令,用來獲取設備的節點和端點的配置信息。而后發出(Set_configuration)設定配置請求,以該配置號配置設備。設備就完全正確處于可操作狀態,完成了枚舉過程,便可以通過端點進行數據傳輸了。  

以下是主設備讀取從設備描述符的過程  


  
主機發起的setup包,使用默認的地址0,端點0。其中SYNC字段為同步序列數據域,固定為01H,緊接著為標識符數據域PID字段,用來表示數據封裝包的類型,可分為令牌、數據、握手或特殊四種封裝包類型。其中令牌封裝包細分為OUT,IN,SETUP,SOF四種封裝格式。隨后為地址數據域ADDR字段,用來尋址高達127個外圍設備,每個設備只有對應唯一的地址,ENDP字段為端點數據域,最多可尋址32個端點,它僅在IN,OUT,SETUP令牌封裝包中,最后為CRC校驗和。  


  
主機發送數據,其中數據域中的數據80表示設備標準請求,06描述符命令(get_descriptor)00 01 代表請求設備的描述符,00 00為語言類型,40 00,指出期望從設備返回的數據個數,如果描述符的個數大于指定的字節個數,則按照指定個數返回,如果描述符小于指定的字節數,返回實際的字節個數。  


  
該幀為設備收到數據后的確認幀  


  
該幀為向設備發送數據請求。  


  
12為描述符長度,01為設備類型,10 01 為usb版本號,bcd碼,這里是usb1.1,00 為設備類型碼,00為子類設備代碼,00為USB分配的設備協議代碼,10為端點0最大包的大小,d8,0d為廠商編號,01 c0為產品編號,04 01為設備出廠編號,01為廠商字符串索引,02 為產品字符串索引,00為序列號,01為設置編號。  



  
在主程序中完成對系統、PDIUSBD12的初始化,以及完成對d12的枚舉,將數據的發送接收都放在中斷程序中。PDIUSBD12有3組端點,使用默認端點0和端點2。將端點2作為數據傳輸的通道,當PDIUSBD12從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接口速度慢的瓶頸,提高了遠程抄表系統的數據傳輸速率,該方案已經成功的得到應用,穩定可靠,有廣闊的應用前景。
本文地址:http://www.qingdxww.cn/thread-21822-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 更佳設計的解決方案——Microchip模擬開發生態系統
  • Cortex-M4外設 —— TC&TCC結合事件系統&DMA優化任務培訓教程
  • 想要避免發生災難,就用MPLAB SiC電源仿真器!
  • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設計風險
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩二级片 | 欧美视频在线一区 | 青青草成人在线观看 | 国产精品视频免费一区二区三区 | 特级欧美视频aaaaaa | 羞羞视频在线观免费观看 | 国产麻豆精品hdvideoss | 新蝙蝠侠2022在线观看完整版 | 精品国产免费人成高清 | 国产精品一级二级三级 | 国产精品国产欧美综合一区 | 成人高清视频免费观看 | 国产高清一区二区三区 | 日日夜夜狠狠 | 精品小视频在线观看 | 亚洲高清视频在线观看 | 色综合久久88色综合天天 | 国产午夜在线观看 | 国产精欧美一区二区三区 | 一本综合久久国产二区 | 日韩一级在线播放 | 国产麻豆精品在线观看 | 久久精品国产日本波多麻结衣 | 啦啦啦www高清在线观看影院 | 欧美日韩性视频一区二区三区 | 手机在线观看黄色网址 | 日韩精品一区二区三区 在线观看 | 亚洲一区二区三 | 久久麻豆视频 | 亚洲自拍偷拍区 | 特级毛片永久久免费观看 | 国产成人精品一区二区 | 茄子黄瓜石榴香蕉草莓绿巨人 | 欧美一区2区三区4区公司二百 | 国产伦久视频免费观看 视频 | 国产理论在线观看 | 99久久99久久精品免费看子 | 美国大片免费观看45分钟 | www.久草.com| 羞羞网站在线播放 | 日日免费视频 |