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
上傳用戶:時代將軍
基于TMS320F2812的數字頻率計摘 要:采用多周期測量原理,即用標準頻率信號填充整數個周期的被測信號,從而消除了被測信號±1的計數誤差,其測量精度僅與門控時間和標準頻率有關,克服傳統的直接測頻或者直接測周法均不能全面滿足高精度要求的缺陷。選用TMS320F2812型號的DSP芯片作為核心處理單元,結合其高精時鐘和快速運算的優點,利用其內部的事件管理器:捕獲單元,定時/計數單元,比較單元,脈寬調制電路PWM,實現高精度的頻率測量,并實現了脈寬和占空比的測量。關鍵詞:高精度頻率測量; 脈寬; 占空比; 多周期測量原理; 數字信號處理器
上傳時間: 2014-10-14
上傳用戶:JIEWENYU
常用三星單片機燒寫電壓設置參考表 燒寫電壓說明:Vdd 電壓指燒寫時加載到芯片Vdd 端子的邏輯電壓,Vpp 電壓指燒寫時加載到芯片Vpp(Test)端子的編程電壓, Vpp=12V 是編程器的默認燒寫電壓,無須特別設置. 由于編程器的默認輸出Vpp 電壓均為12V,因此在燒寫Vpp=3.3V/5.0V 的芯片時,需要對燒寫轉換適配器作以下改動:將燒寫器燒寫座引出的Vpp 端子完全空置不用, 并在適配器上將Vdd端子直接連接Vpp 端即可.當用戶采用在PCB板上燒寫方式時,建議最好能在PCB芯片端的Vpp腳并接一個104 的電容入地,可有效保護在燒寫電壓加載時板子電路共同作用產生的瞬間過壓脈沖不會輸入到Vpp 腳而造成Vpp 擊穿.S3F84K4 燒寫特別說明,由于三星半導體DATA SHEET 要求在對該芯片進行燒寫時,須在Vpp 腳加接一個101 的電容到地,因此在使用我站各款燒寫器燒寫84K4 時,須將燒寫器主板上的Vpp 端原來并接的10uf/50V-電解電容和104 電容去掉,另行并接一個101 電容入地即可.不過,據本人特別測試結果,其實不做以上處理對燒寫過程沒有任何影響, 估計可能是三星半導體對芯片有做過改版,老版本的84K4 才會有以上特別要求,新版本是沒有這個要求的.
上傳時間: 2013-10-10
上傳用戶:wcl168881111111
在串口/并口基礎上實現51內核單片機的在線編程摘要:詳細說明利用并口模擬I2C總線協議,實現Myson MTV230芯片的在線編程(ISP)過程,以及利用PC機的串口通信實現Winbond W78E516B的在線編程(ISP)過程;闡述PC機的串口與并口在單片機開發中的應用。
上傳時間: 2013-10-17
上傳用戶:離殤
Quartus II 中文教程 您現在閱讀的是 Quartus II 簡介手冊。 Altera® Quartus® II 設計軟件是適合單芯片可編程系統 (SOPC) 的最全面的設計環境。 如果您以前用過MAX+PLUS® II 軟件、其它設計軟件或 ASIC 設計軟件,并且準備改用Quartus II 軟件,或如果您對 Quartus II 軟件有了一些了解但想進一步了解它的功能,那么本手冊非常適合您。本手冊針對的讀者是 Quartus II 軟件的初學者,它概述了可編程邏輯設計中Quartus II 軟件的功能。 不過,本手冊并不是 Quartus II 軟件的詳盡參考手冊。 相反,本手冊只是一本指導書,它解釋軟件的功能以及顯示這些功能如何幫助您進行 FPGA 和 CPLD 設計。 本手冊按一系列特定的可編程邏輯設計任務來組織內容。 無論是使用 Quartus II 圖形用戶界面、其它 EDA 工具還是 Quartus II 命令行界面,本手冊都將為您介紹最適合設計流程的功能。第一章概述了主要圖形用戶界面、EDA 工具和命令行界面設計流程。 接下來的每一章開頭都介紹了該章的具體用途,并對每個任務流加以概述。 它顯示了如何將 Quartus II 軟件與現有的 EDA 工具和命令行設計流程集成在一起。另外,手冊還向您推薦了有效使用 Quartus II 軟件的其它可用資源,例如Quartus II 聯機幫助和 Quartus II 聯機教程、應用程序說明、白皮書以及Altera 網站提供的其它文檔和資源。跟隨本手冊學習 Quartus II 軟件,了解此軟件如何幫助您提高效率并縮短設計周期,如何與現有可編程邏輯設計流程集成以及如何快速有效地達到設計、性能和時間要求。
上傳時間: 2013-12-22
上傳用戶:panpanpan
Keil C51開發系統基本知識3 1. 1. 專用寄存器include文件例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統都必須包括本文件。2. 2. 絕對地址include文件absacc.h該文件中實際只定義了幾個宏,以確定各存儲空間的絕對地址。3. 3. 動態內存分配函數,位于stdlib.h中 4. 4. 緩沖區處理函數位于“string.h”中其中包括拷貝比較移動等函數如:memccpy memchr memcmp memcpy memmove memset這樣很方便地對緩沖區進行處理。5. 5. 輸入輸出流函數,位于“stdio.h”中流函數通8051的串口或用戶定義的I/O口讀寫數據,缺省為8051串口,如要修改,比如改為LCD顯示,可修改lib目錄中的getkey.c及putchar.c源文件,然后在庫中替換它們即可。3. 第三節 Keil C51庫函數原型列表
上傳時間: 2013-11-06
上傳用戶:smallfish
石英具有非凡的機械和壓電特性, 使得從19 世紀40 年代中期以來一直作為基本的時鐘器件. 盡管在陶瓷, 硅晶和RLC電路方面有60 多年的研究, 在此之前沒有哪種材料或技術能替代石英振蕩器, 鑒于其異常的溫度穩定性和相位噪聲特性. 估計2006 年將有100億顆石英振蕩器被制造出來并放置到汽車, 數碼相機, 工業設備, 游戲設備, 寬帶設備,蜂窩電話, 以及事實上每一種數字產品當中. 石英振蕩器的制造數量比地球上的人口還要多.
上傳時間: 2013-10-17
上傳用戶:xinshou123456
單片機入門基礎知識大全免費下載 單片機第八課(尋址方式與指令系統) 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現在開始,我們將要系統地學習8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數字的形式。但這種形式實在是為難我們人了,太難記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關系呢,我們不難理解,本質上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉換為機器碼格式,這種轉換有兩種方法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。 二、尋址 讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數據送到相應的位置中去,為什么要送數據呢?第一個因為送入的數可以讓燈全滅掉,第二個是為了要實現延時,從這里我們可以看出來,在用單片機的編程語言編程時,經常要用到數據的傳遞,事實上數據傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數據傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規定做什么事情,后面還有一些參數,分析一下,數據傳遞必須要有一個“源”也就是你要送什么數,必須要有一個“目的”,也就是你這個數要送到什么地方去,顯然在上面那條指令中,要送的數(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數據傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0 ;(1) LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表1 MAIN: SETB P1.0 ;(1) MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表2 這樣一來,我每次調用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環,這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調用則見表2中的主程,也就是先把一個數送入30H,在子程序中R7中的值并不固定,而是根據30H單元中傳過來的數確定。這樣就可以滿足要求。 從這里我們可以得出結論,在數據傳遞中要找到被傳遞的數,很多時候,這個數并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數,我們把尋找操作數所在單元的地址稱之為尋址。在這里我們直接使用數所在單元的地址找到了操作數,所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數放在工作寄存器中,從工作寄存器中尋找數據,則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數據送到累加器A中去。提一個問題:我們知道,工作寄存器就是內存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區別了嗎?為什么要加以區分呢?的確,這兩條指令執行的結果是完全相同的,都是將00H單元中的內容送到A中去,但是執行的過程不同,執行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標碼要兩個字節(E5H 00H),而第二條則只要一個字節(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節又能有多少? 不對,如果這條指令只執行一次,也許無所謂,但一條指令如果執行上1000次,就是1毫秒,如果要執行1000000萬次,就是1S的誤差,這就很可觀了,單片機做的是實時控制的事,所以必須如此“斤斤計較”。字節數同樣如此。 再來提一個問題,現在我們已知,尋找操作數可以通過直接給的方式(立即尋址)和直接給出數所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數,分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數,就用MOV A,30H,那么下一個數呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數,不是得20條指令才能寫完嗎?這里只有20個數,如果要送200個或2000個數,那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據這個寄存器單元中的數值決定該到哪個單元中取數據,比如,當前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發生變化,比如取完一個數后,將這個寄存器單元中的值加1,還是執行同一條指令,可是取數的對象卻不一樣了,不是嗎。通過例子來說明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數20送到R7中,執行完后R7中的值應當是20。第二句是將立即數30H送入R0工作寄存器中,所以執行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內容送入A中,此時,執行這條指令的結果就相當于MOV A,30H。第四句,沒學過,就是把R0中的值加1,因此執行完后,R0中的值就是31H,第五句,學過,將R7中的值減1,看是否等于0,不等于0,則轉到標號LOOP處繼續執行,因此,執行完這句后,將轉去執行MOV A,@R0這句話,此時相當于執行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環20次為止,就實現了我們的要求:從30H單元開始將20個數據送入A中。 這也是一種尋找數據的方法,由于數據是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數據。 二、指令 數據傳遞類指令 1) 以累加器為目的操作數的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數34H送入A中,執行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 這組指令功能是把源地址單元中的內容送入工作寄存器,源操作數不變。
上傳時間: 2013-10-13
上傳用戶:3294322651
將單片機數字控制技術,有機地融入直流穩壓電源的設計中,設計并制作出一款數字化直流穩壓電源。該電源采用數字調節、輸出精度高,且兼備短路和過流保護及報警功能,特別適用于各種有較高精度要求的場合。利用單片機對直流穩壓電源進行控制,改善了電源的性能,使用方便靈活,且成本較低,同時控制系統在軟件上還可進一步改進,以擴展其功能,而并不需要增加硬件開銷,從而提高電源的性能價格比。
上傳時間: 2013-11-10
上傳用戶:HZB20416
Nios 的用戶定義接口邏輯實例 有許多人問我使用 Nios 的用戶定義接口邏輯怎么用,想了幾天決定設計一個實例來說明。該例為一個使用 user to interface logic 設計的 PWM 實例,其中包括三個文件: plus32.v 是一個為 32bit nios 設計的 pwm 實例。 plus16.v 是一個為 16bit nios 設計的 pwm 實例。 test.s 是一個使用中斷調用 pwm 的匯編語言測試程序。以上模塊和程序均調試通過,并可穩定工作。這里讓大家參考是使大家通過該例來真正理解 user to interface logic 設計方法,和nios 中通過匯編調用中斷的方法,所以超值喔。另外熱烈歡迎大家的指導。 注:在設計 Nios 時,將你調用的 user to interface logic 插件重命名為 plus_0,這樣我的 test.s 可不作任何改動,你就可用示波器通過 nios 的 plus 管腳觀察到一個要求的輸出。
上傳時間: 2013-11-15
上傳用戶:cc1915