針對目前汽車追尾事件頻發問題,提出一種防汽車車前和車后追尾的安全裝置設計。該設計以高性能、低功耗的8位AVR微處理器ATmega8L為核心,結合霍爾式車速傳感器、激光雷達測距裝置和MMA7260QT加速度傳感器,能夠兼顧車前和車后,摒棄以往設計中只考慮車前或車后單一性缺點,尤其適用于高速、夜晚或新手行車。 Abstract: Aiming at the high frequency of vehicle rear-end collision,a safe device design of anti-vehicle rear-end collision is presented.In the design,the high-performance,low-power8-bit AVR microprocessor ATmega8L is utilized as a core combined with Hall-type speed sensor,laser-radar ranging devices and the acceleration sensor MMA7260QT.The design considers both the front and back of a car,and overcomes the drawbacks of former designs in which only the front or the back of the car is considered,so it is especially suitable for high-speed,night or the beginner’s driving.
上傳時間: 2013-10-14
上傳用戶:GavinNeko
文章分析了ISD4004語音芯片的內部存儲信息管理機制, 以具體實例介紹了錄音控制過程, 實現了對語音地址的準確控制。
上傳時間: 2013-10-24
上傳用戶:wivai
摘要:本文闡明了單片機在電力系統安全統計上的應用與設計方法。幾年來,通過一些單位的實際應用,已證實了使用單片機進行自動控制的優越性。 關鍵詞:單片機;自動控制;軟件
上傳時間: 2013-11-07
上傳用戶:wenyuoo
【摘要】目前城市的公交車一般都安裝了語音報站系統,給乘客帶來了很好的乘車體驗。不過大部分的語音報站系統是人工報站系統,需要司機在車子進出站時進行人工操作。而且在進出站時路況比較復雜,司機需要分散注意力操作系統,給車子的行駛帶來了很大的安全隱患。本設計利用Atmel公司的AT89C51單片機來設計一個公交語音自動報站系統。用JHD162ALCD來提供站臺信息的顯示;用ISD1700系列語音芯片來對語音進行各種操作控制;并使用DF無線收發模塊及PT2262、PT2272編解碼芯片來實現信號的無線收發與識別。最后通過AT89C51對各個模塊的控制實現無線收發與識別、信息顯示及語音報站任務,并利用Proteus軟件進行仿真。【關鍵詞】51單片機;ISD1700S語音芯片;DF無線收發模塊;PT2262/PT2272芯片;JHD162A
上傳時間: 2013-11-17
上傳用戶:cicizoe
摘要:介紹用MCS-51系列單片機控制手機收發短信息的原理、硬件電路、PDU數據格式和符合GSM07.05協議要求的短信息發送/接收程序,同時給出了一個應用實例。關鍵詞:單片機子 短信息 PDU GSM 接口
上傳時間: 2013-11-19
上傳用戶:lingfei
摘要: 本文在研究了網絡安全的國內外有關情況后對網絡安全技術進行了探討,介紹了一種簡單而實用的網絡安全產品,添補了這方面的空白,而且本文介紹的產品已經應用到了許多部門,為網絡安全做出了貢獻.關鍵詞: 網絡;安全;Internet;黑客;物理隔離;MT8870
上傳時間: 2013-11-20
上傳用戶:1318695663
摘要:提出通過顏色法提取像素點的漢字點陣字模信息提取方法,給出基于VB6.0的系統控件設置及流程實現方法。與基于內碼法的漢字點陣提取方法的比較結果表明,該方法能夠方便地修改顯示內容、字體及字號,豐富LED或LCD顯示屏控制系統的字體顯示效果,提高其工作效率。關鍵詞:點陣顯示;點陣字模提取;區位碼
上傳時間: 2013-10-19
上傳用戶:yt1993410
CiA全稱為“CAN in Automation-國際用戶和廠商協會”,在德國Erlangen注冊。CiA總部位于Erlangen,并由CiA董事會建立各個辦事處。1992年,為促進CAN以及CAN協議的發展,歐洲的一些公司組成一個商業協會,提供CAN的技術、產品以及市場信息。到2002年6月時,共有約400家公司加入了這個協會,協作開發和支持各類CAN高層協議。經過近十年的發展,該協會已經為全球應用CAN技術的權威。CiA提供的各種服務有: 發布各類技術規范。免費下載CAN文獻資料,提供CANopen規范、DeviceNet規范。 發布CAN產品數據庫、CANopen產品指南。 出版CAN時事通訊雜志。 組織國際CAN會議(iCC)、CAN入門培訓、CAN內部講座。 在國際商業展覽會上負責分發印刷資料,并舉辦CAN技術研討會。 提供CANopen驗證工具,執行CANopen認證測試。 為最終用戶提供技術咨詢服務,解答有關DeviceNet和CANopen的問題。 通過email、傳真或電話等方式為器件開發人員、系統設計人員提供免費的咨詢服務。 開發CAN規范(包括物理層定義、應用層和設備協議),并發布為CiA標準。在CiA的努力推廣下,CAN技術在汽車電控制系統、電梯控制系統、安全監控系統、醫療儀器、紡織機械、船舶運輸等方面均得到了廣泛的應用。2002年6月17日,廣州周立功單片機發展有限公司與CiA正式簽訂協議,成為中國的第一家CiA團體會員(FCM)。我們將從CiA獲得各類CAN技術資料、市場信息,并在CiA支持下,從事CAN技術在中國的推廣工作。作為Philips公司在亞太地區的銷量最大的微控制器元件銷售商,廣州周立功單片機發展有限公司提供Philips的CAN控制器、CAN收發器,以及LIN收發器。同時,廣州周立功單片機發展有限公司提供CAN開發工具、CAN調試儀器,并為最終產品應用提供CAN嵌入模塊、CAN接口模塊、CAN高層協議軟件庫、CAN應用方案。第 1
標簽: CiA
上傳時間: 2013-12-22
上傳用戶:時代將軍
有兩種方式可以讓設備和應用程序之間聯系:1. 通過為設備創建的一個符號鏈;2. 通過輸出到一個接口WDM驅動程序建議使用輸出到一個接口而不推薦使用創建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創建一個惟一的、獨立于語言的訪問設備的方法。一個應用程序使用Win32APIs來調用設備。在某個Win32 APIs和設備對象的分發函數之間存在一個映射關系。獲得對設備對象訪問的第一步就是打開一個設備對象的句柄。 用符號鏈打開一個設備的句柄為了打開一個設備,應用程序需要使用CreateFile。如果該設備有一個符號鏈出口,應用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統本調用希望打開一個設備。這個設備必須有一個符號鏈,以便應用程序能夠打開它。有關細節查看有關Kdevice和CreateLink的內容。在上述調用中第一個參數中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數不是Windows 98/2000中驅動程序(.sys文件)的路徑。是到設備對象的符號鏈。如果使用DriverWizard產生驅動程序,它通常使用類KunitizedName來構成設備的符號鏈。這意味著符號鏈名有一個附加的數字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應用程序需要被覆蓋的I/O,第六個參數(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設備信息集,該信息集包含了特殊類中的所有設備接口信息。應用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設備接口的抽象。它的成員函數DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設備。下面用一個小例子來顯示這些類最基本的使用方法: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;} 在設備中執行I/O操作一旦應用程序獲得一個有效的設備句柄,它就能使用Win32 APIs來產生到設備對象的IRPs。下面的表顯示了這種對應關系。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 需要解釋一下設備類成員的Close和CleanUp:CreateFile使內核為設備創建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調用CleanUp。當沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調用Close。如果被打開的設備不支持指定的功能,則調用相應的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應用程序代碼中可能會在打開設備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導致沒有特權的用戶企圖打開這個設備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數轉換成IRP域的方法依賴于設備對象的屬性。當設備設置DO_DIRECT_IO標志,I/O管理器將buff鎖住在存儲器中,并且創建了一個存儲在IRP中的MDL域。一個設備可以通過調用Kirp::Mdl來存取MDL。當設備設置DO_BUFFERED_IO標志,設備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或寫操作獲得buff地址。當設備不設置DO_BUFFERED_IO標志也不設置DO_DIRECT_IO,內核設置IRP 的UserBuffer域來對應ReadFile或WriteFile中的buff參數。然而,存儲區并沒有被鎖住而且地址只對調用進程有效。驅動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調用,buffer參數的轉換依賴于特殊的I/O控制代碼,它不在設備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構造控制代碼。這個宏的其中一個參數指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數: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,系統分配一個單一的緩沖來作為輸入與輸出。驅動程序必須在向輸出緩沖放數據之前拷貝輸入數據。驅動程序通過調用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統緩沖拷貝數據到提供給Ring 3級調用者使用的緩沖中。驅動程序必須在結束前存儲拷貝到IRP的Information成員中的數據個數。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數呈現不同的含義。參數InputBuffer被拷貝到一個系統緩沖,這個緩沖驅動程序可以通過調用KIrp::IoctlBuffer。參數OutputBuffer被映射到KMemory對象,驅動程序對這個對象的訪問通過調用KIrp::Mdl來實現。對于METHOD_OUT_DIRECT,調用者必須有對緩沖的寫訪問權限。注意,對METHOD_NEITHER,內核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現在使用一個DeviceIoControl調用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,這里放的是包含有執行操作命令的字符串指針 0, FirmwareRev, //這里是output串指針,存放從驅動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果輸出緩沖足夠大,設備拷貝串到里面并將拷貝的資結束設置到FirmwareRevSize中。在驅動程序中,代碼看起來如下所示: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 . . . } }
上傳時間: 2013-10-17
上傳用戶:gai928943
單片計算機(簡稱單片機)在工作時,因某種原因造成突然掉電,將會丟失數據存儲器(RAM)里的數據,沖掉前期工作的所有信息。為了在突然掉電時能夠保持數據存儲器(RAM)的數據,保證單片機系統穩定、可靠地工作,數據信息處理的安全,雖然單片機主電源里有大容量濾波電容器,當掉電時,單片機靠貯存在電容器里的能量,一般能維持工作半個周期(10ms)左右。為此,要求一旦市電發生瞬間斷電時,必須要有一種電源能在小于10ms 的時間內重新送電,確保單片機系統正常運行,這一任務就由UPS 來完成。電源系統瞬時掉電所產生的干擾會造成單片機的計算錯誤和數據丟失,有了UPS 可以使單片機系連續可靠地工作。單片機系統除使用UPS 外,下面介紹一種行之有效的后備電源。通過理論和實踐證明,當供電電壓由5V 下降到4 5V時單片機通常均能正常運行,但電壓再往下跌落時,單片機就不能繼續正常運行。在一般情況下CPU、CMOS、TTL 電路將因電源電壓跌落而首先不能正常運行,RAM在電壓跌落到比較低時尚能工作。因為單片機使用的主電源均有大容量電容,所以在主電源失電時,如果按放電曲線在下跌到單片機能正常運行工作的最低電壓之前,把后備電源接上便能保持單片機正常運行。
上傳時間: 2013-11-02
上傳用戶:niumeng16