Labview與單片機(jī)機(jī)通訊程序 介紹利用LabVIEW實(shí)現(xiàn)PC(上位機(jī))與下位機(jī)(調(diào)制解調(diào)器(Modem)、串行打印機(jī)、各種監(jiān)控模塊、PLC、攝像頭云臺、數(shù)控機(jī)床、單片機(jī)及智能設(shè)備等)單片機(jī)串口通信的程序設(shè)計(jì)方法
標(biāo)簽: Labview 單片機(jī) 通訊程序
上傳時間: 2013-05-30
上傳用戶:3到15
(GZDW)高頻開關(guān)直流電源柜采用國內(nèi)最新的有源三相功率因數(shù)校正技術(shù),最大限度地提高了電力電源的功率因數(shù),減少了對電網(wǎng)的污染,降低了電網(wǎng)損耗。交流輸入三級分區(qū)防雷保護(hù)。智能直流絕緣監(jiān)測系統(tǒng)及時監(jiān)測母線對地絕緣故障,自動接地選線。高頻開關(guān)直流電源柜具有高智能化、高可靠性、安全性好、易操作等優(yōu)點(diǎn)。具備“遙測、遙控、遙信、遙調(diào)”功能,通過MODEM和通信網(wǎng)可實(shí)現(xiàn)對電源系統(tǒng)的遠(yuǎn)程監(jiān)控,實(shí)現(xiàn)無人值守。
標(biāo)簽: 高頻開關(guān) 直流 電源柜 技術(shù)數(shù)據(jù)
上傳時間: 2014-12-24
上傳用戶:zhyiroy
內(nèi)容提要: 本書深入淺出,全面系統(tǒng)地介紹了PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).內(nèi)容包括:數(shù)據(jù)通信的基本概念,MODEM及編/解碼技術(shù)、串行通信總線標(biāo)準(zhǔn)及接口技術(shù)、8051單片機(jī)間串行通信技術(shù)、PC機(jī)間的通信技術(shù)和PC機(jī)與8051間的通信技術(shù)。 本書內(nèi)容豐富、新穎、實(shí)用,便于自學(xué)。適合作為大、中專院校計(jì)算機(jī)通信及相關(guān)專業(yè)的教材或參考書,也可供廣大工程技術(shù)人員和愛好者參考。 第1章 數(shù)據(jù)通信基礎(chǔ) 1.1 串行數(shù)據(jù)通信 1.1.1 數(shù)據(jù)通信的概念 1.1.2 串行通信的傳送方式 1.1.3 異步通信和同步通信 1.1.4 波特率和接收/發(fā)送時鐘 1.2 串行通信的過程及通信協(xié)議 1.2.1 串一并轉(zhuǎn)換與設(shè)備同步 1.2.2 串行通信協(xié)議 1.3 通信介質(zhì)的選擇 1.3.1 通信同軸電纜 1.3.2 雙絞線 1.3.3 電話線 1.3.4 電力線 1.3.5 光纜 第2章 數(shù)據(jù)通信中... [顯示全部]
標(biāo)簽: PC機(jī) 單片機(jī) 數(shù)據(jù) 通信技術(shù)
上傳時間: 2013-11-22
上傳用戶:bruce5996
單片機(jī)微控制器以其體積小、功耗低、使用方便等特點(diǎn),廣泛應(yīng)用于各種工業(yè)、民用的嵌入式系統(tǒng)中;而 隨著互聯(lián)網(wǎng)(Internet)的興起與普及,使微控制器通過互聯(lián)網(wǎng)傳送數(shù)據(jù)就變得非常有意義。目前使微控制 器上網(wǎng)的解決方案一般有兩種:一種是采用微控制器驅(qū)動網(wǎng)卡,通過以太網(wǎng)連接Internet;另一種是使微 控制器直接驅(qū)動調(diào)制解調(diào)器(MODEM)通過電話線向ISP 撥號上網(wǎng)。這兩種方案的缺點(diǎn)在于都要使用有線 的網(wǎng)絡(luò),無法應(yīng)用于在邊遠(yuǎn)地區(qū)或可移動系統(tǒng)中。
上傳時間: 2013-11-18
上傳用戶:tangsiyun
本書深入淺出、全面系統(tǒng)地介紹了PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)。內(nèi)容包括:數(shù)據(jù)通信的基本概念、MODEM及編解碼技術(shù)、串行通信總線標(biāo)準(zhǔn)及接口技術(shù)、8051單片機(jī)間串行通信技術(shù)、PC機(jī)間的通信技術(shù)和PC機(jī)與8051間的通信技術(shù)。 本書內(nèi)容豐富、新穎、實(shí)用、便于自學(xué)。適于作為大、中專院校計(jì)算機(jī)通信及相關(guān)專業(yè)的教材或參考書,也可供廣大工程技術(shù)人員和愛好者參考。
標(biāo)簽: PC機(jī) 單片機(jī) 數(shù)據(jù) 通信技術(shù)
上傳時間: 2013-10-17
上傳用戶:wangdean1101
第一章 數(shù)據(jù)通信基礎(chǔ) 第二章 通用串行通信標(biāo)準(zhǔn)和通用MODEM命令 第三章 嵌入式匯編語言開發(fā)通信程序 第四章 MSCOMM控件應(yīng)用 第五章 線程開發(fā)... ......................
上傳時間: 2013-10-14
上傳用戶:swaylong
交換機(jī)與多個現(xiàn)場單片機(jī)連通。現(xiàn)場單片機(jī)完成對各物理參量的數(shù)據(jù)采集,進(jìn)行數(shù)字濾波、數(shù)據(jù)處理、比值告警、現(xiàn)場顯示及對現(xiàn)場設(shè)備進(jìn)行控制等,并定時或隨機(jī)地向中央管理PC機(jī)報告過程情況。中央管理PC機(jī)定時或隨機(jī)地匯集各測試點(diǎn)的信息,進(jìn)行數(shù)據(jù)處理、顯示打印、聲光報警,并負(fù)責(zé)全局的綜合控制、管理調(diào)度和策劃指揮等任務(wù)。中央PC機(jī)可通過電話網(wǎng)依次自動撥號呼叫下屬各現(xiàn)場單片機(jī),單片機(jī)收到呼叫并建立聯(lián)接后發(fā)送數(shù)據(jù)到中央管理PC機(jī),各現(xiàn)場單片機(jī)之間則不能進(jìn)行呼叫聯(lián)絡(luò)。由于單片機(jī)應(yīng)用系統(tǒng)的安裝數(shù)量和分布范圍不同,與中心站的距離一般為幾公里到幾十公里,在單片機(jī)與PC機(jī)之間需要傳送的數(shù)據(jù)量不是很大的情況下,采用調(diào)制解調(diào)器通過電話線路進(jìn)行通信較為適用。下位單片機(jī)以其所在單位的電話號碼作為其唯一的地址,并由單片機(jī)控制電話的使用,可以實(shí)現(xiàn)無人值守自動通信。每當(dāng)電話響鈴一定次數(shù)后仍無人接聽,則單片機(jī)自動接入線路,通過不同標(biāo)志來判斷是主機(jī)呼叫還是人打電話。若是主機(jī)呼叫,表示中心站要求通信,單片機(jī)將保持與上位PC機(jī)連接,將各種測量數(shù)據(jù)發(fā)送出去并接收主機(jī)發(fā)來的命令;若是人打電話,則斷開連接繼續(xù)進(jìn)行數(shù)據(jù)采集,并接通模擬響鈴電路,提醒人們接聽。
標(biāo)簽: Modem 單片機(jī) PC機(jī) 傳輸設(shè)計(jì)
上傳時間: 2014-12-27
上傳用戶:趙一霞a
隨著通信技術(shù)的不斷發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)通信是當(dāng)今技術(shù)發(fā)展的一個重要的方向,然而在網(wǎng)絡(luò)系統(tǒng)中利用現(xiàn)有電話網(wǎng)作為通信方式則是最經(jīng)濟(jì)、最方便和最可靠的方法。當(dāng)前電話通信網(wǎng)已經(jīng)進(jìn)入程控交換時代,技術(shù)比較先進(jìn),速度快,容量大,因此采用電話通信網(wǎng)建立數(shù)據(jù)通信系統(tǒng)確實(shí)具有其獨(dú)特的優(yōu)越性。利用單片機(jī)系統(tǒng)可用于采集灌區(qū)水位、水流量、電力抄表等方面,實(shí)現(xiàn)無人職守,方便管理。2.系統(tǒng)硬件設(shè)計(jì):本系統(tǒng)采用了MODEM將前端單片機(jī)采集的數(shù)據(jù)通過電話網(wǎng)遠(yuǎn)程傳輸?shù)街行恼綪C機(jī),并實(shí)現(xiàn)一對多點(diǎn)通信(站點(diǎn)數(shù)、通信距離均不限),后臺PC機(jī)通過撥號的方式對各站點(diǎn)進(jìn)行數(shù)據(jù)接收并實(shí)時存儲記錄、查詢、打印。單片機(jī)系統(tǒng)從傳感器直接采集數(shù)字信號,通過RS-232接口送給本端的MODEM,MODEM將數(shù)字信號調(diào)制成音頻模擬信號在電話線上傳輸,再經(jīng)中心站MODEM調(diào)制成數(shù)字信號送往PC機(jī)。系統(tǒng)中MODEM采用F-E56CSD-V1型嵌入MODEM,用戶使用賀氏標(biāo)準(zhǔn)AT命令呼叫和應(yīng)答,實(shí)現(xiàn)與遠(yuǎn)程系統(tǒng)的通信。
標(biāo)簽: 單片機(jī) 遠(yuǎn)程通信系統(tǒng)
上傳時間: 2013-11-05
上傳用戶:alan-ee
概述 CH341是一個USB總線的轉(zhuǎn)接芯片,通過USB 總線提供異步串口、打印口、并口以及常用的 2線和4線等同步串行接口。 在異步串口方式下,CH341提供串口發(fā)送使能、串口接收就緒等交互式的速率控制信號以及常用的MODEM聯(lián)絡(luò)信號,用于將普通的串口設(shè)備直接升級到 USB 總線。 在打印口方式下,CH341提供了兼容USB相關(guān)規(guī)范和 Windows操作系統(tǒng)的標(biāo)準(zhǔn) USB打印口,用于將普通的并口打印機(jī)直接升級到USB總線。 在并口方式下,CH341提供了EPP方式或MEM方式及 BUS擴(kuò)展方式的 8位并行接口,用于在不需要單片機(jī)/DSP/MCU 的環(huán)境下,直接輸入輸出數(shù)據(jù)。 除此之外,CH341A 芯片還支持一些常用的同步串行接口,例如 2 線接口(SCL 線、SDA 線)和 4線接口(CS線、CLK線、DIN線、DOUT線)等。
上傳時間: 2014-12-27
上傳用戶:yanyangtian
有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個Win32 APIs和設(shè)備對象的分發(fā)函數(shù)之間存在一個映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個設(shè)備對象的句柄。 用符號鏈打開一個設(shè)備的句柄為了打開一個設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個符號鏈出口,應(yīng)用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個設(shè)備。這個設(shè)備必須有一個符號鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個參數(shù)中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數(shù)不是Windows 98/2000中驅(qū)動程序(.sys文件)的路徑。是到設(shè)備對象的符號鏈。如果使用DriverWizard產(chǎn)生驅(qū)動程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號鏈。這意味著符號鏈名有一個附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個實(shí)例來獲得一個或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface( GUID* pClassGuid, DWORD instance, PDWORD pError){ CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; cout << "The device path is " << DevInterface.DevicePath() << endl; HANDLE hDev; hDev = CreateFile( DevInterface.DevicePath(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDev == INVALID_HANDLE_VALUE) *pError = GetLastError(); return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對象的IRPs。下面的表顯示了這種對應(yīng)關(guān)系。Win32 API DRIVER_FUNCTION_xxxIRP_MJ_xxx KDevice subclass member function CreateFile CREATE Create ReadFile READ Read WriteFile WRITE Write DeviceIoControl DEVICE_CONTROL DeviceControl CloseHandle CLOSECLEANUP CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當(dāng)這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會在打開設(shè)備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲器中,并且創(chuàng)建了一個存儲在IRP中的MDL域。一個設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲區(qū)并沒有被鎖住而且地址只對調(diào)用進(jìn)程有效。驅(qū)動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個宏的其中一個參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method Input Buffer Parameter Output Buffer Parameter METHOD_BUFFERED KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個單一的緩沖來作為輸入與輸出。驅(qū)動程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級調(diào)用者使用的緩沖中。驅(qū)動程序必須在結(jié)束前存儲拷貝到IRP的Information成員中的數(shù)據(jù)個數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個系統(tǒng)緩沖,這個緩沖驅(qū)動程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對象,驅(qū)動程序?qū)@個對象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進(jìn)程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,這里放的是包含有執(zhí)行操作命令的字符串指針 0, FirmwareRev, //這里是output串指針,存放從驅(qū)動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){ ULONG fwLength=0; switch ( I.IoctlCode() ) { case IOCTL_MYDEV_GET_FIRMWARE_REV: fwLength = strlen(FIRMWARE_REV)+1; if (I.IoctlOutputBufferSize() >= fwLength) { strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV); I.Information() = fwLength; return I.Complete(STATUS_SUCCESS); } else { } case . . . } }
標(biāo)簽: 驅(qū)動程序 應(yīng)用程序 接口
上傳時間: 2013-10-17
上傳用戶:gai928943
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1