接口如下所示:clk:時(shí)鐘輸入端,此信號(hào)是串行掃描的同步信號(hào); data_control[7..0]:8個(gè)分別控制數(shù)碼管顯示的輸入信號(hào); led_addr[7..0]:對(duì)8個(gè)數(shù)碼管進(jìn)行串行掃描的輸出控制信號(hào); seg7_data[6..0]驅(qū)動(dòng)7段數(shù)碼管各顯示段的輸出信號(hào);
上傳時(shí)間: 2014-01-07
上傳用戶:qq21508895
數(shù)字電位計(jì)是機(jī)械電位計(jì)的最佳替代產(chǎn)品,因其具有小尺寸封裝、更高可靠性、高精度和更小電壓毛刺等優(yōu)勢(shì)。數(shù)字電位計(jì)可采用各種數(shù)字和手動(dòng)接口。手動(dòng)或按鈕接口直接通過(guò)兩個(gè)按鈕開(kāi)關(guān)進(jìn)行控制, 例如AD5116或AD5228。按向上按鈕可提高電阻,按向下按鈕可降低電阻,如圖1所示。
上傳時(shí)間: 2013-10-11
上傳用戶:wyiman
PIC16F877 單片機(jī)的鍵盤(pán)和LED 數(shù)碼顯示接口 1 PIC16F877單片機(jī)與鍵盤(pán)和LED數(shù)碼顯示的硬件接口電路單片機(jī)的許多應(yīng)用都需要進(jìn)行人機(jī)對(duì)話,最簡(jiǎn)單的人機(jī)對(duì)話需要LED 數(shù)碼管顯示數(shù)字和少量字符;鍵盤(pán)是解決計(jì)算機(jī)輸入的簡(jiǎn)單手段;借此可以向計(jì)算機(jī)輸入程序、置數(shù)、送操作命令、控制程序的執(zhí)行等等,所以使用非常廣泛。圖1 鍵盤(pán)、LED數(shù)碼顯示與PIC16F877 單片機(jī)的接口電路本例中采用8 個(gè)按鍵組成的小鍵盤(pán),4 只共陰極的LED 數(shù)碼管,采用4 片74LS373 驅(qū)動(dòng)數(shù)碼管,采用的驅(qū)動(dòng)方法是靜態(tài)方式。使用1 片74LS245 作為鍵盤(pán)的接口;這些外圍器件與PIC16F877 單片機(jī)的接口電路如圖1 所示,這種連接方法與51 系列的單片機(jī)連接方法一樣,其他的連接方法還有好幾種,PIC16F877 單片機(jī)的鍵盤(pán)輸入接法還有其他特殊而十分方便好用的方式。8 鍵鍵盤(pán)通過(guò)74LS245 與單片機(jī)相連,鍵盤(pán)按鍵狀態(tài)的數(shù)據(jù)輸入由RC3 輸出腳控制;當(dāng)RC3=“0”時(shí),鍵盤(pán)狀態(tài)從74LS245 的A 端輸出到單片機(jī)的PORTB口,此時(shí)讀PORTB口的數(shù)據(jù)即為鍵盤(pán)狀態(tài)。為了及時(shí)地響應(yīng)鍵盤(pán)操作,需要經(jīng)常對(duì)鍵盤(pán)進(jìn)行掃描;掃描的方式有許多種,我們將鍵盤(pán)的掃描程序安排在主程序的循環(huán)執(zhí)行過(guò)程中的方式,并采用20ms延遲來(lái)消除按鍵的抖動(dòng)問(wèn)題,此外,為了實(shí)現(xiàn)每按鍵一次只響應(yīng)一次的功能,在執(zhí)行相應(yīng)的按鍵程序之前,必須確保按鍵已經(jīng)松開(kāi);在本例中這一措施有效的防止了數(shù)據(jù)抖動(dòng)過(guò)快的問(wèn)題。LED 數(shù)碼顯示有動(dòng)態(tài)掃描和靜態(tài)顯示兩種方式(圖1 采取的方式為靜態(tài)方式),在動(dòng)態(tài)掃描方式中,各數(shù)碼顯示是輪流點(diǎn)亮的,即控制數(shù)碼顯示的位選信號(hào)和相應(yīng)的要顯示的數(shù)碼的字形代碼同時(shí)逐一送出,反復(fù)不已,由于視覺(jué)的暫留現(xiàn)象,卻好象全都點(diǎn)亮著,這種電路的接法以后再介紹。在靜態(tài)方式中,只要將數(shù)據(jù)送出鎖存以后,各數(shù)碼顯示的數(shù)據(jù)不需要刷新,只要數(shù)據(jù)不需改變,就可以不去管他,所以稱為靜態(tài)顯示。在圖1 電路中,輸出顯示的操作簡(jiǎn)化為對(duì)74LS373 的并口操作而已。由于靜態(tài)方式的工作原理比較簡(jiǎn)單,編程也比較直觀簡(jiǎn)單,程序間的相互關(guān)聯(lián)很少。因此編程容易,但要增加硬件,成本較高;與之相比,動(dòng)態(tài)掃描的編程雖然要復(fù)雜一些,但因其所用硬件少,成本低。由數(shù)碼轉(zhuǎn)化為字形代碼可采用軟件譯碼、硬件譯碼等兩種方式。軟件譯碼是將各數(shù)碼的字形代碼構(gòu)成一個(gè)表格存儲(chǔ)于內(nèi)存之中,在顯示數(shù)碼時(shí),通過(guò)執(zhí)行查表程序而得到相應(yīng)的字形代碼,再將之送入數(shù)碼顯示輸出電路進(jìn)行顯示,本例即采用這種方式,這種方式的編程與單片機(jī)有關(guān),在程序中給出了PIC16F877 的編程例程,對(duì)需要熟悉PIC16F877 單片機(jī)的人員有一定的參考價(jià)值。硬件譯碼則采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 碼—7段鎖存、譯碼、驅(qū)動(dòng)芯片直接譯出字形代碼,點(diǎn)亮LED。74LS373 由LE 端對(duì)要顯示的數(shù)據(jù)進(jìn)行鎖存控制,實(shí)現(xiàn)LED 的靜態(tài)顯示。采用了PIC16F877 的端口輸出操作,模擬74LS373 的數(shù)據(jù)鎖存時(shí)序,即由軟件實(shí)現(xiàn)數(shù)據(jù)鎖存,這種方法可以十分容易的改變時(shí)序和延遲長(zhǎng)短,使高速設(shè)備可以與低速設(shè)備聯(lián)系配合好,設(shè)計(jì)簡(jiǎn)單方便,不好的地方是編程較長(zhǎng)和稍微復(fù)雜一點(diǎn)。這種編程方法在下面的程序中有很好的體現(xiàn)。
上傳時(shí)間: 2013-10-29
上傳用戶:cuiyashuo
DAC0832是一個(gè)8位D/A轉(zhuǎn)換器芯片,單電源供電,從+5V~+15V均可正常工作,基準(zhǔn)電壓的范圍為±10V,電流建立時(shí)間為1μs,CMOS工藝,低功耗20mW。其內(nèi)部結(jié)構(gòu)如圖9.1所示,它由1個(gè)8位輸入寄存器、1個(gè)8位DAC寄存器和1個(gè)8位D/A轉(zhuǎn)換器組成和引腳排列如圖1所示。 • DAC0832工作方式• ADC0809工作方式要求掌握:• MCS-51單片機(jī)與D/A轉(zhuǎn)換器的接口連接• MCS-51單片機(jī)與A/D轉(zhuǎn)換器的接口連接• 初始化編程及應(yīng)用了解:• 典型D/A轉(zhuǎn)換器芯片DAC0832的管腳功能• 典型A/D轉(zhuǎn)換器芯片ADC0809的管腳功能
標(biāo)簽: MCS 51 單片機(jī) 轉(zhuǎn)換器
上傳時(shí)間: 2014-01-14
上傳用戶:zl520l
基于對(duì)8086 單芯片計(jì)算機(jī)的研究,設(shè)計(jì)了系統(tǒng)顯示接口模塊,其中包括SDRAM 顯示存儲(chǔ)器,DMA 顯示傳輸通道和VGA 顯示終端3 個(gè)主要功能單元。整個(gè)設(shè)計(jì)遵循ASIC流程,討論了基于FPGA 的實(shí)現(xiàn)技術(shù)。使用具體顯示實(shí)例驗(yàn)證,結(jié)果表明,該顯示接口能夠正確完成所要求的單芯片計(jì)算機(jī)顯示操作。關(guān)鍵詞:8086 單芯片計(jì)算機(jī);顯示接口;SDRAM;DMA 通道;VGA
標(biāo)簽: 8086 單芯片 計(jì)算機(jī) 顯示接口
上傳時(shí)間: 2013-10-10
上傳用戶:tyler
有兩種方式可以讓設(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編寫(xiě)的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ì)緩沖的寫(xiě)訪問(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
鼠標(biāo)有RS232串口和PS/2二種接口,在單片機(jī)應(yīng)用中,由于PS/2鼠標(biāo)是1yrL電平,和單片接口更方便,通常PS/2鼠標(biāo)控制芯片采用TP8452。以TP8452為例說(shuō)明PS/2鼠標(biāo)的工作原理,其他的PS/2鼠標(biāo)控制芯片均與TP8452兼容。TP8452能接受3個(gè)按鍵和2組光電探頭的信號(hào),組合成一定格式的信息,傳送給系統(tǒng)。TP8452還具有按鍵去抖和噪聲抑制功能,組成完善的信號(hào)采集前端電路。在單片機(jī)系統(tǒng)中,可以直接利用鼠標(biāo)作為輸入設(shè)備,也可以單獨(dú)使用TP8452,作為轉(zhuǎn)速、距離測(cè)量的預(yù)處理電路。由于TP8452的存在,不論是高速旋轉(zhuǎn),還是慢速爬行,甚至正反振蕩,都不會(huì)影響其測(cè)量的準(zhǔn)確性。1 PS/2鼠標(biāo)原標(biāo)圖采用TP8452的典型3鍵鼠標(biāo)原理圖如圖1所示。GX、GY是2組光電探頭,檢測(cè)滾輪的轉(zhuǎn)動(dòng)。每組光電探頭內(nèi)有2個(gè)光敏接收管,間隔為滾輪格柵的1/4,根據(jù)2個(gè)信號(hào)的相位關(guān)系,TP8452可以確定滾輪的正反轉(zhuǎn)向。K1、K2、K3是3個(gè)按鍵。TP8452連續(xù)監(jiān)視2個(gè)滾輪和3個(gè)按鍵,一旦有動(dòng)作,立即將信息通過(guò)PS/2接口向系統(tǒng)報(bào)告。
標(biāo)簽: PS 鼠標(biāo) 單片機(jī) 接口
上傳時(shí)間: 2013-10-29
上傳用戶:xuanjie
RS-232-C 是PC 機(jī)常用的串行接口,由于信號(hào)電平值較高,易損壞接口電路的芯片,與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。本產(chǎn)品(轉(zhuǎn)接器),可以實(shí)現(xiàn)任意電平下(0.8~15)的UART串行接口到RS-232-C/E接口的無(wú)源電平轉(zhuǎn)接, 使用非常方便可靠。 什么是RS-232-C 接口?采用RS-232-C 接口有何特點(diǎn)?傳輸電纜長(zhǎng)度如何考慮?答: 計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在1970 年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25 個(gè)腳的 DB25 連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。(1) 接口的信號(hào)內(nèi)容實(shí)際上RS-232-C 的25 條引線中有許多是很少使用的,在計(jì)算機(jī)與終端通訊中一般只使用3-9 條引線。(2) 接口的電氣特性 在RS-232-C 中任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”,-5— -15V;邏輯“0” +5— +15V 。噪聲容限為2V。即 要求接收器能識(shí)別低至+3V 的信號(hào)作為邏輯“0”,高到-3V的信號(hào) 作為邏輯“1”(3) 接口的物理結(jié)構(gòu) RS-232-C 接口連接器一般使用型號(hào)為DB-25 的25 芯插頭座,通常插頭在DCE 端,插座在DTE端. 一些設(shè)備與PC 機(jī)連接的RS-232-C 接口,因?yàn)椴皇褂脤?duì)方的傳送控制信號(hào),只需三條接口線,即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號(hào)地”。所以采用DB-9 的9 芯插頭座,傳輸線采用屏蔽雙絞線。(4) 傳輸電纜長(zhǎng)度由RS-232C 標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長(zhǎng)度應(yīng)為50 英尺,其實(shí)這個(gè)4%的碼元畸變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實(shí)際使用中最大距離會(huì)遠(yuǎn)超過(guò)50 英尺,美國(guó)DEC 公司曾規(guī)定允許碼元畸變?yōu)?0%而得出附表2 的實(shí)驗(yàn)結(jié)果。其中1 號(hào)電纜為屏蔽電纜,型號(hào)為DECP.NO.9107723 內(nèi)有三對(duì)雙絞線,每對(duì)由22# AWG 組成,其外覆以屏蔽網(wǎng)。2 號(hào)電纜為不帶屏蔽的電纜。 2. 什么是RS-485 接口?它比RS-232-C 接口相比有何特點(diǎn)?答: 由于RS-232-C 接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):(1) 接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。(2) 傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。(3) 接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。(4) 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50 英尺,實(shí)際上也只能 用在50 米左右。針對(duì)RS-232-C 的不足,于是就不斷出現(xiàn)了一些新的接口標(biāo)準(zhǔn),RS-485 就是其中之一,它具有以下特點(diǎn):1. RS-485 的電氣特性:邏輯“1”以兩線間的電壓差為+(2—6) V 表示;邏輯“0”以兩線間的電壓差為-(2—6)V 表示。接口信號(hào)電平比RS-232-C 降低了,就不易損壞接口電路的芯片, 且該電平與TTL 電平兼容,可方便與TTL 電路連接。2. RS-485 的數(shù)據(jù)最高傳輸速率為10Mbps3. RS-485 接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。4. RS-485 接口的最大傳輸距離標(biāo)準(zhǔn)值為4000 英尺,實(shí)際上可達(dá) 3000 米,另外RS-232-C接口在總線上只允許連接1 個(gè)收發(fā)器, 即單站能力。而RS-485 接口在總線上是允許連接多達(dá)128 個(gè)收發(fā)器。即具有多站能力,這樣用戶可以利用單一的RS-485 接口方便地建立起設(shè)備網(wǎng)絡(luò)。因RS-485 接口具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離和多站能力等上述優(yōu)點(diǎn)就使其成為首選的串行接口。 因?yàn)镽S485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。 RS485 接口連接器采用DB-9 的9 芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤(pán)連接的鍵盤(pán)接口RS485 采用DB-9(針)。3. 采用RS485 接口時(shí),傳輸電纜的長(zhǎng)度如何考慮?答: 在使用RS485 接口時(shí),對(duì)于特定的傳輸線經(jīng),從發(fā)生器到負(fù)載其數(shù)據(jù)信號(hào)傳輸所允許的最大電纜長(zhǎng)度是數(shù)據(jù)信號(hào)速率的函數(shù),這個(gè) 長(zhǎng)度數(shù)據(jù)主要是受信號(hào)失真及噪聲等影響所限制。下圖所示的最大電纜長(zhǎng)度與信號(hào)速率的關(guān)系曲線是使用24AWG 銅芯雙絞電話電纜(線 徑為0.51mm),線間旁路電容為52.5PF/M,終端負(fù)載電阻為100 歐 時(shí)所得出。(曲線引自GB11014-89 附錄A)。由圖中可知,當(dāng)數(shù)據(jù)信 號(hào)速率降低到90Kbit/S 以下時(shí),假定最大允許的信號(hào)損失為6dBV 時(shí), 則電纜長(zhǎng)度被限制在1200M。實(shí)際上,圖中的曲線是很保守的,在實(shí) 用時(shí)是完全可以取得比它大的電纜長(zhǎng)度。 當(dāng)使用不同線徑的電纜。則取得的最大電纜長(zhǎng)度是不相同的。例 如:當(dāng)數(shù)據(jù)信號(hào)速率為600Kbit/S 時(shí),采用24AWG 電纜,由圖可知最 大電纜長(zhǎng)度是200m,若采用19AWG 電纜(線徑為0。91mm)則電纜長(zhǎng) 度將可以大于200m; 若采用28AWG 電纜(線徑為0。32mm)則電纜 長(zhǎng)度只能小于200m。
上傳時(shí)間: 2013-10-11
上傳用戶:時(shí)代電子小智
以SPI總線技術(shù)為基礎(chǔ),用微控制器S3C2450X和電平轉(zhuǎn)換芯片MAX3088設(shè)計(jì)了一個(gè)RS-422接口電路,將SPI單端非平衡傳輸信號(hào)轉(zhuǎn)換為RS-422差分信號(hào)。在保證SPI同步傳輸?shù)母咝院透咚傩缘耐瑫r(shí),還增強(qiáng)了信號(hào)的抗干擾能力。 主要使用9 個(gè)信號(hào)主機(jī)輸入G從機(jī)輸出C 主機(jī)輸出從機(jī)輸入 串行時(shí)鐘C 或外設(shè)片選或從機(jī)選擇信號(hào)由從機(jī)在主機(jī)的控制下產(chǎn)生信號(hào)用于禁止或使能外設(shè)的收發(fā)功能為高電平時(shí)\" 禁止外設(shè)接收和發(fā)送數(shù)據(jù)為低電平時(shí)\" 允許外設(shè)接收和發(fā)送數(shù)據(jù)! 圖1 所示是微處理器通過(guò)與外設(shè)連接的示意圖!
上傳時(shí)間: 2014-03-21
上傳用戶:lizhen9880
X9241概述X9241是XICOR公司生產(chǎn)的、把4個(gè)E2POT數(shù)字電位器集成在單片的CMOS集成電路上的一種數(shù)字電位器。它包含4個(gè)電阻陣列,每個(gè)陣列包含63個(gè)電阻單元,在每個(gè)單元之間和2個(gè)端點(diǎn)之間都有被滑動(dòng)單元訪問(wèn)的抽頭點(diǎn)?;瑒?dòng)單元在陣列中的位置由用戶通過(guò)2線串行總線接口控制。每個(gè)電阻陣列與1個(gè)滑動(dòng)端計(jì)數(shù)寄存器(WCR)和4個(gè)8位數(shù)據(jù)寄存器聯(lián)系在一起。這4個(gè)數(shù)據(jù)寄存器可由用戶直接寫(xiě)入和讀出。WCR的內(nèi)容控制滑動(dòng)端在電阻陣列中的位置,其功能框圖如圖1所示。X9241工作原理 X9241支持雙向總線的定向規(guī)約,是一個(gè)從屬器件。它的高4位地址為0101(器件類型辨識(shí)符),低4位地址由A3~A0輸入端狀態(tài)決定。在SDA線上的數(shù)據(jù)只有在SCL為低期間才能改變狀態(tài)。當(dāng)SCL為高時(shí),SDA狀態(tài)的改變用來(lái)表示開(kāi)始和終止條件(開(kāi)始條件:SCL為高時(shí),SDA由高至低的跳變;終止條件:SCL為高時(shí),SDA由低至高的跳變)。送給X9241的所有命令都由開(kāi)始條件引導(dǎo),在其后輸出X9241從器件的地址。X9241把串行數(shù)據(jù)流與該器件的地址比較,若地址比較成功,則作出一個(gè)應(yīng)答響應(yīng)。送到X9241的下一個(gè)字節(jié)包括指令及寄存器指針的信息,高4位為指令,低4位用來(lái)指出4個(gè)電位器中的1個(gè)及4個(gè)輔助寄存器中的1個(gè)。
標(biāo)簽: X9241 PIC 數(shù)字電位器 單片機(jī)
上傳時(shí)間: 2014-01-18
上傳用戶:黃酒配奶茶
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1