亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲(chóng)蟲(chóng)首頁(yè)| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

SAP,ERP物流與運(yùn)營(yíng)統(tǒng)一化

  • 驅(qū)動(dòng)程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過(guò)為設(shè)備創(chuàng)建的一個(gè)符號(hào)鏈;2. 通過(guò)輸出到一個(gè)接口WDM驅(qū)動(dòng)程序建議使用輸出到一個(gè)接口而不推薦使用創(chuàng)建符號(hào)鏈的方法。這個(gè)接口保證PDO的安全,也保證安全地創(chuàng)建一個(gè)惟一的、獨(dú)立于語(yǔ)言的訪問(wèn)設(shè)備的方法。一個(gè)應(yīng)用程序使用Win32APIs來(lái)調(diào)用設(shè)備。在某個(gè)Win32 APIs和設(shè)備對(duì)象的分發(fā)函數(shù)之間存在一個(gè)映射關(guān)系。獲得對(duì)設(shè)備對(duì)象訪問(wèn)的第一步就是打開(kāi)一個(gè)設(shè)備對(duì)象的句柄。 用符號(hào)鏈打開(kāi)一個(gè)設(shè)備的句柄為了打開(kāi)一個(gè)設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個(gè)符號(hào)鏈出口,應(yīng)用程序可以用下面這個(gè)例子的形式打開(kāi)句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開(kāi)一個(gè)設(shè)備。這個(gè)設(shè)備必須有一個(gè)符號(hào)鏈,以便應(yīng)用程序能夠打開(kāi)它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個(gè)參數(shù)中前綴后的部分就是這個(gè)符號(hào)鏈的名字。注意:CreatFile中的第一個(gè)參數(shù)不是Windows 98/2000中驅(qū)動(dòng)程序(.sys文件)的路徑。是到設(shè)備對(duì)象的符號(hào)鏈。如果使用DriverWizard產(chǎn)生驅(qū)動(dòng)程序,它通常使用類KunitizedName來(lái)構(gòu)成設(shè)備的符號(hào)鏈。這意味著符號(hào)鏈名有一個(gè)附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個(gè)參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個(gè)輸出接口打開(kāi)句柄用這種方式打開(kāi)一個(gè)句柄會(huì)稍微麻煩一些。DriverWorks庫(kù)提供兩個(gè)助手類來(lái)使獲得對(duì)該接口的訪問(wèn)容易一些,這兩個(gè)類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個(gè)設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個(gè)實(shí)例來(lái)獲得一個(gè)或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個(gè)單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個(gè)路徑名的指針,該指針可以在CreateFile中使用來(lái)打開(kāi)設(shè)備。下面用一個(gè)小例子來(lái)顯示這些類最基本的使用方法: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)用程序獲得一個(gè)有效的設(shè)備句柄,它就能使用Win32 APIs來(lái)產(chǎn)生到設(shè)備對(duì)象的IRPs。下面的表顯示了這種對(duì)應(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)建一個(gè)新的文件對(duì)象。這使得多個(gè)句柄可以映射同一個(gè)文件對(duì)象。當(dāng)這個(gè)文件對(duì)象的最后一個(gè)用戶級(jí)句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒(méi)有任何用戶級(jí)和核心級(jí)的對(duì)文件對(duì)象的訪問(wèn)的時(shí)候,I/O管理器調(diào)用Close。如果被打開(kāi)的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯(cuò)誤(無(wú)效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會(huì)在打開(kāi)設(shè)備的時(shí)候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個(gè)屬性,因?yàn)樗鼘?dǎo)致沒(méi)有特權(quán)的用戶企圖打開(kāi)這個(gè)設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對(duì)象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲(chǔ)器中,并且創(chuàng)建了一個(gè)存儲(chǔ)在IRP中的MDL域。一個(gè)設(shè)備可以通過(guò)調(diào)用Kirp::Mdl來(lái)存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對(duì)象分別通過(guò)KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來(lái)對(duì)應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲(chǔ)區(qū)并沒(méi)有被鎖住而且地址只對(duì)調(diào)用進(jìn)程有效。驅(qū)動(dòng)程序可以使用KIrp::UserBuffer來(lái)存取IRP域。對(duì)于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對(duì)象的特性中。宏CTL_CODE(在winioctl.h中定義)用來(lái)構(gòu)造控制代碼。這個(gè)宏的其中一個(gè)參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對(duì)應(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)分配一個(gè)單一的緩沖來(lái)作為輸入與輸出。驅(qū)動(dòng)程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動(dòng)程序通過(guò)調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時(shí),I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級(jí)調(diào)用者使用的緩沖中。驅(qū)動(dòng)程序必須在結(jié)束前存儲(chǔ)拷貝到IRP的Information成員中的數(shù)據(jù)個(gè)數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個(gè)系統(tǒng)緩沖,這個(gè)緩沖驅(qū)動(dòng)程序可以通過(guò)調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對(duì)象,驅(qū)動(dòng)程序?qū)@個(gè)對(duì)象的訪問(wèn)通過(guò)調(diào)用KIrp::Mdl來(lái)實(shí)現(xiàn)。對(duì)于METHOD_OUT_DIRECT,調(diào)用者必須有對(duì)緩沖的寫訪問(wèn)權(quán)限。注意,對(duì)METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會(huì)做映射來(lái)配置緩沖。虛擬地址只對(duì)調(diào)用進(jìn)程有效。這里是一個(gè)用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來(lái)定義一個(gè)IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個(gè)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ū)動(dòng)程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動(dòng)程序中,代碼看起來(lái)如下所示: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ū)動(dòng)程序 應(yīng)用程序 接口

    上傳時(shí)間: 2013-10-17

    上傳用戶:gai928943

  • 用單片機(jī)內(nèi)置比較器設(shè)計(jì)高精度A/D變換器

    Σ-ΔA/D技術(shù)具有高分辨率、高線性度和低成本的特點(diǎn)。本文基于TI公司的MSP430F1121單片機(jī),介紹了采用內(nèi)置比較器和外圍電路構(gòu)成類似于Σ-△的高精度A/D實(shí)現(xiàn)方案,適合用于對(duì)溫度、壓力和電壓等緩慢變化信號(hào)的采集應(yīng)用。 在各種A/D轉(zhuǎn)換器中,最常用是逐次逼近法(SAR)A/D,該類器件具有轉(zhuǎn)換時(shí)間固定且快速的特點(diǎn),但難以顯著提高分辨率;積分型A/D 有較強(qiáng)的抗干擾能力,但轉(zhuǎn)換時(shí)間較長(zhǎng);過(guò)采樣Σ-ΔA/D由于其高分辨率,高線性度及低成本的特點(diǎn),正得到越來(lái)越多的應(yīng)用。根據(jù)這些特點(diǎn),本文以TI公司的MSP430F1121單片機(jī)實(shí)現(xiàn)了一種類似于Σ-ΔA/D技術(shù)的高精度轉(zhuǎn)換器方案。 MSP430F1121是16位RISC結(jié)構(gòu)的FLASH型單片機(jī),該芯片有14個(gè)雙向I/O口并兼有中斷功能,一個(gè)16位定時(shí)器兼有計(jì)數(shù)和定時(shí)功能。I/O口輸出高電平時(shí)電壓接近Vcc,低電平時(shí)接近Vss,因此,一個(gè)I/O口可以看作一位DAC,具有PWM功能。 該芯片具有一個(gè)內(nèi)置模擬電壓比較器,只須外接一只電阻和電容即可構(gòu)成一個(gè)類似于Σ-Δ技術(shù)的高精度單斜率A/D。一般而言,比較器在使用過(guò)程中會(huì)受到兩種因素的影響,一種是比較器輸入端的偏置電壓的積累;另一種是兩個(gè)輸入端電壓接近到一程度時(shí),輸出端會(huì)產(chǎn)生振蕩。 MSP430F1121單片機(jī)在比較器兩輸入端對(duì)應(yīng)的單片機(jī)端口與片外輸入信號(hào)的連接線路保持不變的情況下,可通過(guò)軟件將比較器兩輸入端與對(duì)應(yīng)的單片機(jī)端口的連接線路交換,并同時(shí)將比較器的輸出極性變換,這樣抵消了比較器的輸入端累積的偏置電壓。通過(guò)在內(nèi)部將輸出連接到低通濾波器后,即使在比較器輸入端兩比較電壓非常接近,經(jīng)過(guò)濾波后也不會(huì)出現(xiàn)輸出端的振蕩現(xiàn)象,從而消除了輸出端震蕩的問(wèn)題。利用內(nèi)置比較器實(shí)現(xiàn)高精度A/D圖1是一個(gè)可直接使用的A/D轉(zhuǎn)換方案,該方案是一個(gè)高精度的積分型A/D轉(zhuǎn)換器。其基本原理是用單一的I/O端口,執(zhí)行1位的數(shù)模轉(zhuǎn)換,以比較器的輸出作反饋,來(lái)維持Vout與Vin相等。圖1:利用MSP430F1121實(shí)現(xiàn)的實(shí)用A/D轉(zhuǎn)換器電路方案。

    標(biāo)簽: 用單片機(jī) 內(nèi)置 比較器 變換器

    上傳時(shí)間: 2013-11-10

    上傳用戶:lliuhhui

  • 80C51便攜式產(chǎn)品中的低功耗設(shè)計(jì)

    80C51單片機(jī)由于功能全面、開(kāi)發(fā)工具較為完善、衍生產(chǎn)品豐富、大量的設(shè)計(jì)資源可以繼承和共享,得到廣泛的應(yīng)用。我們?cè)O(shè)計(jì)的一款手持線PDA產(chǎn)品,也選擇80C51單片機(jī)作為主、輔CPU,還具備點(diǎn)陣液晶顯示屏、導(dǎo)電橡膠鍵盤、雙IC卡接口、EEPROM存儲(chǔ)器、實(shí)時(shí)時(shí)鐘和串行通信口。由于使用80C51單片機(jī)開(kāi)發(fā),高級(jí)語(yǔ)言編程,大大降低了設(shè)計(jì)的技術(shù)風(fēng)險(xiǎn),產(chǎn)品在較短的時(shí)間內(nèi)就推向了市場(chǎng)。但是,同一些低速的微控制器(如4位單片機(jī))和高速的RISC處理器相比,80C51單片機(jī)在功耗上沒(méi)有優(yōu)勢(shì)。為了在PDA類產(chǎn)品中發(fā)揮80C51單片機(jī)的上述特長(zhǎng),我們通過(guò)采取軟、硬件配合的一系列措施,加強(qiáng)低電壓、低功耗設(shè)計(jì),取得了良好的效果。該機(jī)使用一顆3V鈕扣式鋰電池,開(kāi)機(jī)時(shí)工作電池小于4mA,瞬間最大工作電流小于20mA,瞬間最大工作電流小于20mA,關(guān)機(jī)電流小于2μA。一顆電池可以使用較長(zhǎng)的時(shí)間,達(dá)到滿意的設(shè)計(jì)指標(biāo)。一、低電壓低功耗設(shè)計(jì)理論在一個(gè)器件中,功耗通常用電流消耗來(lái)表示。下式表明消耗的電池與器件特性之間的關(guān)系:Icc = C ∫ Vda ≈ ΔV · C · f (1)式中:Icc是器件消耗的電流;Δ是電壓變化的幅值;C是器件電容和輸出容性負(fù)載的大小;f是器件運(yùn)行頻率。從公式(1)可以得到降低系統(tǒng)功耗的理論依據(jù)。將器件供電電壓從5V降低3V,可以至少降低40%的功耗。降低器件的工作頻率,也能成比例地降低功耗。

    標(biāo)簽: 80C51 便攜式產(chǎn)品 低功耗設(shè)計(jì)

    上傳時(shí)間: 2013-10-13

    上傳用戶:shaojie2080

  • 用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示

    用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示摘  要:文章介紹了用AT89S8252單片機(jī)的串行接口與智能溫度巡回檢測(cè)儀(XJ-08S)通過(guò)RS—485總線相互通訊實(shí)現(xiàn)熱水溫度遠(yuǎn)程顯示的一種低成本解決方案,內(nèi)容涉及RS—485總線通訊、單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示、數(shù)據(jù)轉(zhuǎn)換以及鍵盤處理軟硬件設(shè)計(jì)等內(nèi)容。關(guān)鍵詞:?jiǎn)纹瑱C(jī)  RS—485總線  數(shù)碼管顯示  數(shù)據(jù)轉(zhuǎn)換  鍵盤處理一、前  言目前檢測(cè)溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補(bǔ)償導(dǎo)線,而溫度補(bǔ)償導(dǎo)線價(jià)格很貴,并且線路太長(zhǎng)也會(huì)影響測(cè)量精度。在實(shí)際應(yīng)用中往往需要對(duì)較遠(yuǎn)處(1KM左右)的溫度信號(hào)進(jìn)行監(jiān)視。現(xiàn)有的解決方案有很多,例如:1、 在現(xiàn)場(chǎng)用智能儀表對(duì)溫度信號(hào)進(jìn)行測(cè)量,用計(jì)算機(jī)作上位機(jī)與智能儀表進(jìn)行通訊來(lái)實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)(采用這種方案要增加計(jì)算機(jī)設(shè)備及相關(guān)計(jì)算機(jī)軟件)。2、 NCU+DDC實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。用兩個(gè)DDC,一個(gè)安裝在現(xiàn)場(chǎng)測(cè)量溫度,另一個(gè)安裝在監(jiān)視地,兩個(gè)DDC通過(guò)NCU進(jìn)行通訊從而實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。但以上方案都存在成本高的問(wèn)題,有沒(méi)有低成本的解決方案呢?其實(shí),在單片機(jī)應(yīng)用日益廣泛的今天,完全可以用單片機(jī)以極低的成本來(lái)實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。二、問(wèn)題的提出我單位管理的鍋爐房同時(shí)給兩棟建筑物內(nèi)的兩家酒店供應(yīng)蒸汽,由安裝在兩棟建筑物地下室的熱交換器進(jìn)行熱交換后產(chǎn)生熱水送給客房。從鍋爐房至兩個(gè)熱交換站的距離分別約600米,值班人員要不停地奔波于兩個(gè)熱交換站與鍋爐房之間進(jìn)行設(shè)備巡視,檢查熱水溫度是否控制在規(guī)定的范圍,這樣不僅增加了值班人員的勞動(dòng)強(qiáng)度,同時(shí)也使鍋爐房經(jīng)常無(wú)人(因每班1人值班)。如果能在鍋爐房顯示兩個(gè)熱交換站內(nèi)各熱交換器的熱水溫度,則值班人員僅在熱水溫度異常時(shí)才需到各熱交換站檢查設(shè)備,這樣便可解決上述問(wèn)題。我公司曾就此問(wèn)題找專業(yè)公司作過(guò)方案,其報(bào)價(jià)在人民幣10萬(wàn)元左右,后因種種原因該項(xiàng)目未實(shí)施。經(jīng)過(guò)分析,本人發(fā)現(xiàn)可以用單片機(jī)+智能儀表以低成本實(shí)現(xiàn)溫度遠(yuǎn)程顯示,并且經(jīng)過(guò)實(shí)驗(yàn)取得了成功,現(xiàn)將設(shè)計(jì)方案簡(jiǎn)述如下:三、控制要求及解決方案選擇 1、 兩個(gè)熱交換站分高低區(qū)共安裝有8個(gè)熱交換器,正常水溫在45oC至65oC之間;兩個(gè)熱交換站與鍋爐房的距離分別為500米和600米左右。2、 要求在鍋爐房能以巡回及定點(diǎn)兩種方式顯示8個(gè)熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點(diǎn)方式時(shí)每按上鍵或下鍵一次則顯示上或下一個(gè)熱交換器熱水溫度,每3秒自動(dòng)更新數(shù)據(jù)一次。3、 根據(jù)控制要求選擇單片機(jī)+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現(xiàn)場(chǎng)測(cè)量溫度,設(shè)計(jì)制作一個(gè)單片機(jī)裝置完成與智能儀表的通訊及數(shù)據(jù)顯示。四、通訊協(xié)議、智能儀表選擇及其參數(shù)介紹因熱水溫度信號(hào)變化較慢,因而對(duì)通信的速度要求不高,對(duì)于這種低速率遠(yuǎn)距離的通訊選用RS-485總線適宜。RS-485是EIA(美國(guó)電子工業(yè)聯(lián)合會(huì))在1983年公布的新的平衡傳輸標(biāo)準(zhǔn),是工業(yè)界使用最為廣泛的雙向、平衡傳輸線標(biāo)準(zhǔn)接口,它以半雙工方式通信,支持多點(diǎn)連接,傳統(tǒng)驅(qū)動(dòng)器允許創(chuàng)建多達(dá)32個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),且其具有傳輸距離遠(yuǎn)(最大傳輸距離為1200M),傳輸速度快(1200M時(shí)為100KBPS)等優(yōu)點(diǎn)。其連接方法如下圖所示。

    標(biāo)簽: 用單片機(jī) 溫度 遠(yuǎn)程顯示

    上傳時(shí)間: 2013-10-12

    上傳用戶:luopoguixiong

  • 提高PLC程序運(yùn)行速度的幾種編程方法

    PLC 以 其 可靠性高、抗干擾能力強(qiáng)、配套齊全、功能完善、適應(yīng)性強(qiáng)等特點(diǎn),廣泛應(yīng)用于各種控制領(lǐng)域。PLC作為通用工業(yè)控制計(jì)算機(jī),是面向工礦企業(yè)的工控設(shè)備,使用梯形圖符號(hào)進(jìn)行編程,與繼電器電路相當(dāng)接近,被廣大工程技術(shù)人員接受。但是在實(shí)際應(yīng)用中,如何編程能夠提高PLC程序運(yùn)行速度是一個(gè)值得我們思考研究的問(wèn)題。1 PLC工作原理PLC 與 計(jì) 算機(jī)的工作原理基本相同,即在系統(tǒng)程序的管理下,通過(guò)運(yùn)行應(yīng)用程序完成用戶任務(wù)。但兩者的工作方式有所不同。計(jì)算機(jī)一般采用等待命令的工作方式,而PLC在確定了工作任務(wù)并裝人了專用程序后成為一種專用機(jī),它采用循環(huán)掃描工作方式,系統(tǒng)工作任務(wù)管理及應(yīng)用程序執(zhí)行都是用循環(huán)掃描方式完成的。PLC 有 兩 種基本的工作狀態(tài),即運(yùn)行(RUN)與停止(STOP)狀態(tài)。在這兩種狀態(tài)下,PLC的掃描過(guò)程及所要完成的任務(wù)是不盡相同的,如圖1所示。 PLC在RUN工作狀態(tài)時(shí),執(zhí)行一次掃描操作所的時(shí)間稱為掃描周期,其典型值通常為1一100nis,不同PLC廠家的產(chǎn)品則略有不同。掃描周期由內(nèi)部處理時(shí)間、輸A/ 輸出處理執(zhí)行時(shí)間、指令執(zhí)行時(shí)間等三部分組成。通常在一個(gè)掃描過(guò)程中,執(zhí)行指令的時(shí)間占了絕大部分,而執(zhí)行指令的時(shí)間與用戶程序的長(zhǎng)短有關(guān)。用戶 程 序 是根據(jù)控制要求由用戶編制,由許多條PLC指令所組成。不同的指令所對(duì)應(yīng)的程序步不同,以三菱FX2N系列的PLC為例,PLC對(duì)每一個(gè)程序步操作處理時(shí)間為:基本指令占0.741s/步,功能指令占幾百微米/步。完成一個(gè)控制任務(wù)可以有多種編制程序的方法,因此,選擇合理、巧妙的編程方法既可以大大提高程序運(yùn)行速度,又可以保證可靠性。 提高PLC程序運(yùn)行速度的幾種編程方法2.1 用數(shù)據(jù)傳送給位元件組合的方法來(lái)控制輸出在 PL C應(yīng) 用編程中,最后都會(huì)有一段輸出控制程序,一般都是用邏輯取及輸出指令來(lái)編寫,如圖2所示。在圖2所示的程序中,邏輯取的程序步為1,輸出的程序步為2,執(zhí)行上述程序共需3個(gè)程序步。通常情況下,PLC要控制的輸出都不會(huì)是少量的,比如,有8個(gè)輸出,在條件滿足時(shí)要同時(shí)輸出。此時(shí),執(zhí)行圖2所示的程序共需17個(gè)程序步。若我們通過(guò)位元件的組合并采用數(shù)據(jù)傳送的方法來(lái)完成圖2所示的程序,就會(huì)大大減少程序步驟。在三 菱 PLC中,只處理ON/OFF狀態(tài)的元件(如X,Y,M和S),稱為位元件。但將位元件組合起來(lái)也可以處理數(shù)據(jù)。位元件組合由Kn加首元件號(hào)來(lái)表示。位元件每4bit為一組組合成單元。如KYO中的n是組數(shù),當(dāng)n=1時(shí),K,Yo 對(duì)應(yīng)的是Y3一Yo。當(dāng)n二2時(shí),KZYo對(duì)應(yīng)的是Y7一Yo。通過(guò)位元件組合,就可以用處理數(shù)據(jù)的方式來(lái)處理位元件,圖2程序所示的功能可用圖3所示的傳送數(shù)據(jù)的方式來(lái)完成。

    標(biāo)簽: PLC 程序 運(yùn)行速度 編程方法

    上傳時(shí)間: 2013-11-11

    上傳用戶:幾何公差

  • 單片機(jī)c語(yǔ)言入門教程

    51 單片機(jī)C 語(yǔ)言學(xué)習(xí)雜記學(xué)習(xí)單片機(jī)實(shí)在不是件易事,一來(lái)要購(gòu)買高價(jià)格的編程器,仿真器,二來(lái)要學(xué)習(xí)編程語(yǔ)言,還有眾多種類的單片機(jī)選擇真是件讓人頭痛的事。在眾多單片機(jī)中51 架構(gòu)的芯片風(fēng)行很久,學(xué)習(xí)資料也相對(duì)很多,是初學(xué)的較好的選擇之一。51 的編程語(yǔ)言常用的有二種,一種是匯編語(yǔ)言,一種是C 語(yǔ)言。匯編語(yǔ)言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C 語(yǔ)言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語(yǔ)言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過(guò)匯編語(yǔ)言,而且C 語(yǔ)言還可以嵌入?yún)R編來(lái)解決高時(shí)效性的代碼編寫問(wèn)題。對(duì)于開(kāi)發(fā)周期來(lái)說(shuō),中大型的軟件編寫用C 語(yǔ)言的開(kāi)發(fā)周期通常要小于匯編語(yǔ)言很多。綜合以上C 語(yǔ)言的優(yōu)點(diǎn),我在學(xué)習(xí)時(shí)選擇了C 語(yǔ)言。以后的教程也只是我在學(xué)習(xí)過(guò)程中的一些學(xué)習(xí)筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學(xué)習(xí),一起進(jìn)步。*注:可以肯定的說(shuō)這個(gè)教程只是為初學(xué)或入門者準(zhǔn)備的,筆者本人也只是菜鳥(niǎo)一只,第一課 建立您的第一個(gè)C 項(xiàng)目使用C 語(yǔ)言肯定要使用到C 編譯器,以便把寫好的C 程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。KEIL uVISION2 是眾多單片機(jī)應(yīng)用開(kāi)發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C 語(yǔ)言的程序設(shè)計(jì),它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。因此很多開(kāi)發(fā)51 應(yīng)用的工程師或普通的單片機(jī)愛(ài)好者,都對(duì)它十分喜歡。以上簡(jiǎn)單介紹了KEIL51 軟件,要使用KEIL51 軟件,必需先要安裝它。KEIL51 是一個(gè)商業(yè)的軟件,對(duì)于我們這些普通愛(ài)好者可以到KEIL 中國(guó)代理周立功公司的網(wǎng)站上下載一份能編譯2K 的DEMO 版軟件,基本可以滿足一般的個(gè)人學(xué)習(xí)和小型應(yīng)用的開(kāi)發(fā)。(安裝的方法和普通軟件相當(dāng)這里就不做介紹了)安裝好后,您是不是迫不及待的想建立自己的第一個(gè)C 程序項(xiàng)目呢?下面就讓我們一起來(lái)建立一個(gè)小程序項(xiàng)目吧。或許您手中還沒(méi)有一塊實(shí)驗(yàn)板,甚至沒(méi)有一塊單片機(jī),不過(guò)沒(méi)有關(guān)系我們可以通過(guò)KEIL 軟件仿真看到程序運(yùn)行的結(jié)果。首先當(dāng)然是運(yùn)行KEIL51 軟件。怎么打開(kāi)?噢,天!那您要從頭學(xué)電腦了。呵呵,開(kāi)個(gè)玩笑,這個(gè)問(wèn)題我想讀者們也不會(huì)提的了:P。運(yùn)行幾秒后,出現(xiàn)如圖1-1 的屏幕。

    標(biāo)簽: 單片機(jī)c語(yǔ)言 入門教程

    上傳時(shí)間: 2014-01-23

    上傳用戶:yyyyyyyyyy

  • MCS-51 單片機(jī)的系統(tǒng)擴(kuò)展問(wèn)題

    本章主要介紹51系列單片機(jī)系統(tǒng)擴(kuò)展問(wèn)題,在本章中要研究較多的硬件方面及硬軟結(jié)合方面的問(wèn)題,本章與第一章關(guān)系密切,在學(xué)習(xí)本章內(nèi)容之前,要先明確51系列單片機(jī)本身的系統(tǒng)資源,可先復(fù)習(xí)一下前面幾章的有關(guān)單片機(jī)硬件組成方面的內(nèi)容。 本章將介紹以下具體內(nèi)容:    系統(tǒng)擴(kuò)展的含義、單片機(jī)的地址總線和數(shù)據(jù)總線、常見(jiàn)系統(tǒng)擴(kuò)展電路舉例。§7.0  前言         1.系統(tǒng)擴(kuò)展的含義    單片機(jī)中雖然已經(jīng)集成了CPU、I/O口、定時(shí)器、中斷系統(tǒng)、存儲(chǔ)器等計(jì)算機(jī)的基本部件(即系統(tǒng)資源),但是對(duì)一些較復(fù)雜應(yīng)用系統(tǒng)來(lái)說(shuō)有時(shí)感到以上資源中的一種或幾種不夠用,這就需要在單片機(jī)芯片外加相應(yīng)的芯片、電路,使得有關(guān)功能得以擴(kuò)充,我們稱為系統(tǒng)擴(kuò)展(即系統(tǒng)資源的擴(kuò)充)。    2.系統(tǒng)擴(kuò)展分類----單一功能的擴(kuò)展                  綜合功能的擴(kuò)展3.系統(tǒng)擴(kuò)展需要解決的問(wèn)題----    單片機(jī)與相應(yīng)芯片的接口電路連接(即地址總線、數(shù)據(jù)總線、控制總線的連接)與編程。4.單片機(jī)的地址總線和數(shù)據(jù)總線    51系列單片機(jī)沒(méi)有專用的對(duì)外地址總線和數(shù)據(jù)總線,其P0口和P2口既是通用I/O口,同時(shí)P0口還是分時(shí)復(fù)用的雙向數(shù)據(jù)總線和低8位地址總線(一般需要加一級(jí)鎖存器),而P2口則是高8位地址總線5.常見(jiàn)系統(tǒng)擴(kuò)展電路(1)單一功能的系統(tǒng)擴(kuò)展     存儲(chǔ)器的擴(kuò)展(程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、E2PROM )     外部中斷源的擴(kuò)展(簡(jiǎn)單門電路)     并行口的擴(kuò)展(8155)(2)綜合功能的擴(kuò)展     外部RAM、定時(shí)器、并行口擴(kuò)展(8155)     存儲(chǔ)器、并行口、定時(shí)器擴(kuò)展(多芯片)7.1.1 程序存儲(chǔ)器的擴(kuò)展.程序存儲(chǔ)器的作用----存放程序代碼或常數(shù)表格  .擴(kuò)展時(shí)所用芯片----一般用只讀型存儲(chǔ)器芯片(可以是EPROM、E2PROM、 FLASH芯片等)。  .擴(kuò)展電路連接 ---- 用EPROM 2764擴(kuò)展程序存儲(chǔ)器。  .存儲(chǔ)器地址分析----究竟單片機(jī)輸出什么地址值時(shí),可以指向存儲(chǔ)器中的某一單元。

    標(biāo)簽: MCS 51 單片機(jī) 系統(tǒng)擴(kuò)展

    上傳時(shí)間: 2013-10-19

    上傳用戶:zhaoq123

  • PLC電梯控制系統(tǒng)的設(shè)計(jì)和檢測(cè)

      摘要: 隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的迅速發(fā)展,PLC(即可編程控制器)在工業(yè)控制領(lǐng)域內(nèi)得到十分廣泛地應(yīng)用。PLC是一種基于數(shù)字計(jì)算機(jī)技術(shù)、專為在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)的電子控制裝置,它采用可編程序的存儲(chǔ)器,用來(lái)存儲(chǔ)用戶指令,通過(guò)數(shù)字或模擬的輸入/輸出,完成一系列邏輯、順序、定時(shí)、記數(shù)、運(yùn)算等確定的功能,來(lái)控制各種類型的機(jī)電一體化設(shè)備和生產(chǎn)過(guò)程。本文介紹了利用可編程控制器編寫的一個(gè)五層電梯的控制系統(tǒng),檢驗(yàn)電梯PLC控制系統(tǒng)的運(yùn)行情況。實(shí)踐證明,PLC可遍程控制器和MCGS組態(tài)軟件結(jié)合有利于PLC控制系統(tǒng)的設(shè)計(jì)、檢測(cè),具有良好的應(yīng)用價(jià)值。   電梯是隨著高層建筑的興建而發(fā)展起來(lái)的一種垂直運(yùn)輸工具。多層廠房和多層倉(cāng)庫(kù)需要有貨梯;高層住宅需要有住宅梯;百貨大樓和賓館需要有客梯,自動(dòng)扶梯等。在現(xiàn)代社會(huì),電梯已像汽車、輪船一樣,成為人類不可缺少的交通運(yùn)輸工具。據(jù)統(tǒng)計(jì),美國(guó)每天乘電梯的人次多于乘載其它交通工具的人數(shù)。當(dāng)今世界,電梯的使用量已成為衡量現(xiàn)代化程度的標(biāo)志之一。追溯電梯這種升降設(shè)備的歷史,據(jù)說(shuō)它起源于公元前236年的古希臘。當(dāng)時(shí)有個(gè)叫阿基米德的人設(shè)計(jì)出--人力驅(qū)動(dòng)的卷筒式卷?yè)P(yáng)機(jī)。1858年以蒸汽機(jī)為動(dòng)力的客梯,在美國(guó)出現(xiàn),繼而有在英國(guó)出現(xiàn)水壓梯。1889年美國(guó)的奧梯斯電梯公司首先使用電動(dòng)機(jī)作為電梯動(dòng)力,這才出現(xiàn)名副其實(shí)的電梯,并使電梯趨于實(shí)用化。1900年還出現(xiàn)了第一臺(tái)自動(dòng)扶梯。1949年出現(xiàn)了群控電梯,首批4~6臺(tái)群控電梯在紐約的聯(lián)合國(guó)大廈被使用。1955年出現(xiàn)了小型計(jì)算機(jī)(真空管)控制電梯。1962年美國(guó)出現(xiàn)了速度達(dá)8米/秒的超高速電梯。1963年一些先進(jìn)工業(yè)國(guó)只成了無(wú)觸點(diǎn)半導(dǎo)體邏輯控制電梯。1967年可控硅應(yīng)用于電梯,使電梯的拖動(dòng)系統(tǒng)筒化,性能提高。1971年集成電路被應(yīng)用于電梯。第二年又出現(xiàn)了數(shù)控電梯。1976年微處理機(jī)開(kāi)始用于電梯,使電梯的電氣控制進(jìn)入了一個(gè)新的發(fā)展時(shí)期。   1電梯簡(jiǎn)介   1.1電梯的基本分類   1.1.1按用途分類   ⑴ 乘客電梯:為運(yùn)送乘客而設(shè)計(jì)的電梯。主用與賓館,飯店,辦公樓,大型商店等客流量大的場(chǎng)合。這類電梯為了提高運(yùn)送效率,其運(yùn)行速度比較快,自動(dòng)化程度比較高。轎廂的尺寸和結(jié)構(gòu)形式多為寬度大于深度,使乘客能暢通地進(jìn)出。而且安全設(shè)施齊全,裝潢美觀。

    標(biāo)簽: PLC 電梯控制系統(tǒng) 檢測(cè)

    上傳時(shí)間: 2013-11-18

    上傳用戶:yuanyuan123

  • 基于NiosII軟核處理器的步進(jìn)電機(jī)接口設(shè)計(jì)

        NiosII軟核處理器是Altera公司開(kāi)發(fā),基于FPGA操作平臺(tái)使用的一款高速處理器,為了適應(yīng)高速運(yùn)動(dòng)圖像采集,提出了一種基于NiosII軟核處理的步進(jìn)電機(jī)接口設(shè)計(jì),使用verilog HDL語(yǔ)言完成該接口設(shè)計(jì),最后通過(guò)QuartusII軟件,給出了實(shí)驗(yàn)仿真結(jié)果。

    標(biāo)簽: NiosII 軟核處理器 步進(jìn)電機(jī) 接口設(shè)計(jì)

    上傳時(shí)間: 2014-12-28

    上傳用戶:jiwy

  • 基于FPGA和CMX589A的GMSK調(diào)制器設(shè)計(jì)與實(shí)現(xiàn)

    GMSK信號(hào)具有很好的頻譜和功率特性,特別適用于功率受限和信道存在非線性、衰落以及多普勒頻移的移動(dòng)突發(fā)通信系統(tǒng)。根據(jù)GMSK調(diào)制的特點(diǎn),提出 亍一種以FPGA和CMX589A為硬件裁體的GMSK調(diào)制器的設(shè)計(jì)方案,并給出了方案的具體實(shí)現(xiàn),包括系統(tǒng)結(jié)構(gòu)、利用CMX589A實(shí)現(xiàn)的高斯濾波器、 FPGA實(shí)現(xiàn)的調(diào)制指數(shù)為O.5的FM調(diào)制器以及控制器。對(duì)系統(tǒng)功能和性能測(cè)試結(jié)果表明,指標(biāo)符合設(shè)計(jì)要求,工作穩(wěn)定可靠。 關(guān)鍵詞:GMSK;DDS;FM調(diào)制器;FPGAl 引 言 由于GMSK調(diào)制方式具有很好的功率頻譜特性,較優(yōu)的誤碼性能,能夠滿足移動(dòng)通信環(huán)境下對(duì)鄰道干擾的嚴(yán)格要求,因此成為GSM、ETS HiperLANl以及GPRS等系統(tǒng)的標(biāo)準(zhǔn)調(diào)制方式。目前GMSK調(diào)制技術(shù)主要有兩種實(shí)現(xiàn)方法,一種是利用GMSK ASIC專用芯片來(lái)完成,典型的產(chǎn)品如FX589或CMX909配合MC2833或FX019來(lái)實(shí)現(xiàn)GMSK調(diào)制。這種實(shí)現(xiàn)方法的特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單、基帶信 號(hào)速率可控,但調(diào)制載波頻率固定,沒(méi)有可擴(kuò)展性。另外一種方法是利用軟件無(wú)線電思想采用正交調(diào)制的方法在FPGA和DSP平臺(tái)上實(shí)現(xiàn)。其中又包括兩種實(shí)現(xiàn) 手段,一種是采用直接分解將單個(gè)脈沖的高斯濾波器響應(yīng)積分分成暫態(tài)部分和穩(wěn)態(tài)部分,通過(guò)累加相位信息來(lái)實(shí)現(xiàn);另一種采用頻率軌跡合成,通過(guò)采樣把高斯濾波 器矩形脈沖響應(yīng)基本軌跡存入ROM作為查找表,然后通過(guò)FM調(diào)制實(shí)現(xiàn)。這種利用軟件無(wú)線電思想實(shí)現(xiàn)GMSK調(diào)制的方法具有調(diào)制參數(shù)可變的優(yōu)點(diǎn),但由于軟件 設(shè)計(jì)中涉及到高斯低通濾波、相位積分和三角函數(shù)運(yùn)算,所以調(diào)制器參數(shù)更改困難、實(shí)現(xiàn)復(fù)雜。綜上所述,本文提出一種基于CMX589A和FPGA的GMSK 調(diào)制器設(shè)計(jì)方案。與傳統(tǒng)實(shí)現(xiàn)方法比較具有實(shí)現(xiàn)簡(jiǎn)單、調(diào)制參數(shù)方便可控和軟件剪裁容易等特點(diǎn),適合于CDPD、無(wú)中心站等多種通信系統(tǒng),具有重要現(xiàn)實(shí)意義。

    標(biāo)簽: FPGA 589A GMSK CMX

    上傳時(shí)間: 2013-10-24

    上傳用戶:thesk123

主站蜘蛛池模板: 岱山县| 揭西县| 东乡| 荥阳市| 衢州市| 马尔康县| 页游| 沙坪坝区| 泰和县| 巴塘县| 库车县| 元氏县| 望江县| 金堂县| 临沭县| 天峨县| 喀什市| 当阳市| 酒泉市| 澜沧| 都江堰市| 金门县| 堆龙德庆县| 加查县| 定安县| 通渭县| 两当县| 乡城县| 平顶山市| 化州市| 云南省| 麻江县| 大冶市| 吉林市| 威远县| 隆化县| 尼木县| 阳原县| 嘉峪关市| 璧山县| 宁强县|