LCD為LCM161(HD44780驅(qū)動(dòng)器)字符顯示器驅(qū)動(dòng)程序 ;說明:本LCD為LCM161(HD44780驅(qū)動(dòng)器)字符顯示器. ;接線:LCD D0-D8(PIN7-14) 對映用戶板P0.0--P0.7 ; LCD VSS(PIN1) 接 GND,VDD(PIN2)接+5V,LCD驅(qū)動(dòng)電源V0(PIN3)接可調(diào)電阻ADJ,調(diào)節(jié)亮度 ; LCD寄存器選擇RS(PIN4)接P2.0,讀寫選擇R/W(PIN5)接P2.1,使能端EN(PIN6)接P2.2(高電平有效) ;本程序采用I/O口模仿總線時(shí)序,故無需做任何硬件擴(kuò)展.屏幕顯示:"I'm SuperICES! ",
上傳時(shí)間: 2013-10-17
上傳用戶:ssz1990
作為嵌入式系統(tǒng)主控單元——單片機(jī),其軟件往往是一個(gè)微觀的實(shí)時(shí)操作系統(tǒng),且大部分是為某種應(yīng)用而專門設(shè)計(jì)的。系統(tǒng)程序有實(shí)時(shí)過程控制或?qū)崟r(shí)信息處理的能力,要求能夠及時(shí)響應(yīng)隨機(jī)發(fā)生的外部事件并對該事件做出快速處理。而分時(shí)操作系統(tǒng)卻是把CPU的時(shí)間劃分成長短基本相同的時(shí)間區(qū)間,即“時(shí)間片”,通過操作系統(tǒng)的管理,把這些時(shí)間片依次輪流地分配給各個(gè)用戶使用。如果某個(gè)作業(yè)在時(shí)間片結(jié)束之前,整個(gè)任務(wù)還沒有完成,那么該作業(yè)就被暫停下來,放棄CPU,等待下一輪循環(huán)再繼續(xù)做。此時(shí)CPU又分配給另一個(gè)作業(yè)去使用。由于計(jì)算機(jī)的處理速度很快,只要時(shí)間片的間隔取得適當(dāng),那么一個(gè)用戶作業(yè)從用完分配給它的一個(gè)時(shí)間片到獲得下一個(gè)CPU時(shí)間片,中間有所“停頓”;但用戶察覺不出來,好像整個(gè)系統(tǒng)全由它“獨(dú)占”似的。分時(shí)操作系統(tǒng)主要具有以下3個(gè)特點(diǎn):① 多路性。用戶通過各自的終端,可以同時(shí)使用一個(gè)系統(tǒng)。② 及時(shí)性。用戶提出的各種要求,能在較短或可容忍的時(shí)間內(nèi)得到響應(yīng)和處理。③ 獨(dú)占性。在分時(shí)系統(tǒng)中,雖然允許多個(gè)用戶同時(shí)使用一個(gè)CPU,但用戶之間操作獨(dú)立,互不干涉。分時(shí)操作系統(tǒng)主要是針對小型機(jī)以上的計(jì)算機(jī)提出的。一般而言,微處理器(MPU)驅(qū)動(dòng)的通用計(jì)算機(jī),系統(tǒng)設(shè)計(jì)人員對每一臺(tái)的最終具體應(yīng)用都是不得而知的,因此,在價(jià)格允許的情況下,硬件設(shè)計(jì)務(wù)求CPU時(shí)鐘盡可能的快;計(jì)算及管理能力盡可能的強(qiáng);程序和數(shù)據(jù)存儲(chǔ)器的容量盡可能的大;各種計(jì)算機(jī)外設(shè)的配接盡可能的詳盡等等,特別是采用分時(shí)操作系統(tǒng)的機(jī)器,因?yàn)槭且粰C(jī)多用戶的管理系統(tǒng),它的要求就更高了。相對而言,微控制器(MCU)俗稱單片機(jī),是一個(gè)單片集成系統(tǒng),它將這些或那些計(jì)算機(jī)所需的外設(shè),諸如程序和數(shù)據(jù)存儲(chǔ)器、端口以及有關(guān)的子系統(tǒng)集成到一片芯片上。從硬件上,單片機(jī)系統(tǒng)與采用分時(shí)操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)是無法比擬的。但是,在單片機(jī)系統(tǒng)的設(shè)計(jì)中,設(shè)計(jì)人員對其最終具體應(yīng)用是一清二楚的,它的使用環(huán)境相對是單一固定的。所控制的過程的可預(yù)見性為分時(shí)系統(tǒng)思想的實(shí)現(xiàn)提供了可能性。具體一點(diǎn)就是:雖然單片機(jī)的CPU速度較低,但其任務(wù)是可預(yù)見的,這樣作業(yè)調(diào)度將變得簡單而無須占用很多的CPU時(shí)間,同時(shí)“時(shí)間片”的設(shè)計(jì)是具體而有針對性的,因此可變得很有效。一、單片機(jī)分時(shí)系統(tǒng)的設(shè)計(jì)單片機(jī)系統(tǒng)往往是一個(gè)嵌入式的控制系統(tǒng),因此目前絕大部分的單片機(jī)系統(tǒng)還是一實(shí)時(shí)系統(tǒng)。能夠真正體現(xiàn)分時(shí)系統(tǒng)的設(shè)計(jì)思想的往往是那些多路重復(fù)檢測控制系統(tǒng)。即便是在這些多路重復(fù)檢測控制系統(tǒng)中,它的實(shí)時(shí)性也是非常重要的。也就是說,在單片機(jī)系統(tǒng)中應(yīng)用了分時(shí)系統(tǒng)設(shè)計(jì)思想,但其及時(shí)性應(yīng)首先進(jìn)行考慮。
標(biāo)簽: 分時(shí)操作系統(tǒng) 中的實(shí)現(xiàn) 單片機(jī)編程
上傳時(shí)間: 2013-12-23
上傳用戶:佳期如夢
系統(tǒng)start-up 定時(shí)器• 為了讓振蕩器能夠穩(wěn)定起振所需要的延時(shí)時(shí)間。• 其時(shí)間為1024 個(gè)振蕩器振蕩周期。制程和溫度漂移• 因RC 振蕩器的頻率與內(nèi)建振蕩電容值有關(guān),而此電容值與制程參數(shù)有關(guān),所以不同的MCU 會(huì)表現(xiàn)出不一致性。在固定電壓和溫度下,振蕩頻率漂移范圍約±25%。• 對于同一顆MCU(與制程漂移無關(guān)),其振蕩頻率會(huì)對工作電壓和工作溫度產(chǎn)生漂移。其對工作電壓和工作溫度所產(chǎn)生的漂移,可參考HOLTEK 網(wǎng)站上提供的相關(guān)資料。EMI/EMS(EMC)注意事項(xiàng)• ROSC 位置應(yīng)盡量接近OSC1 引腳,其至OSC1 的連線應(yīng)最短。• CS 可以提高振蕩器的抗干擾能力,其與MCU OSC1 和GND 的連線應(yīng)最短。• RPU 在確定系統(tǒng)頻率之后,量產(chǎn)時(shí)建議不要接,因?yàn)槠鋐SYS/4 頻率輸出會(huì)干擾到OSC1
上傳時(shí)間: 2014-01-20
上傳用戶:yyyyyyyyyy
九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級IPOL和I/O許可位圖的方法來控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問I/O空間中所有地址的最外層特權(quán)級。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo) 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級執(zhí)行的程序所訪問。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見,當(dāng)前特權(quán)級不在I/O特權(quán)級外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級在I/O特權(quán)級外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級3執(zhí)行的應(yīng)用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對應(yīng)一個(gè)I/O地址,位串的第0位對應(yīng)I/O地址0,位串的第n位對應(yīng)I/O地址n。如果位串中的第位為0,那么對應(yīng)的I/O地址m可以由在任何特權(quán)級執(zhí)行的程序訪問;否則對應(yīng)的I/O地址m只能由在IOPL特權(quán)級或更內(nèi)層特權(quán)級執(zhí)行的程序訪問。如果在I/O外層特權(quán)級執(zhí)行的程序訪問位串中位值為1的位所對應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見,TSS內(nèi)偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長可達(dá)8K字節(jié),所以開始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門SS中前104字節(jié)為TSS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開始偏移;(3)計(jì)算I/O地址對應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問。設(shè)某一任務(wù)的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對應(yīng)I/O端口00H—3FH DB 10000000B ;對應(yīng)I/O端口40H—47H DB 01100000B ;對用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對應(yīng)I/O端口50H—0FFFFH DB 0FFH ;位圖結(jié)束字節(jié)TSSLen = $TSSSEG ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常: in al,21h ;(1)正常執(zhí)行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實(shí)行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執(zhí)行 out 20h,eax ;(6)正常執(zhí)行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見,不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位。可見即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對較小I/O地址訪問的許可檢查根據(jù)位圖進(jìn)行,而對較大I/O地址訪問的許可檢查總被認(rèn)為不可訪問而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類似地,對EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對待是無意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級下對這三個(gè)字段的處理情況。 不同特權(quán)級對標(biāo)志寄存器特殊字段的處理 特權(quán)級 VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見,只有在特權(quán)級0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對于IOPL同級或更內(nèi)層特權(quán)級執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級不滿足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過任務(wù)門調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級是0;(4)通過任務(wù)門調(diào)用測試任務(wù)1。測試任務(wù)1能夠順利進(jìn)行;(5)通過任務(wù)門調(diào)用測試任務(wù)2。測試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過任務(wù)門調(diào)用測試任務(wù)3。測試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過任務(wù)門調(diào)用測試任務(wù)4。測試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。
上傳時(shí)間: 2013-12-11
上傳用戶:nunnzhy
摘要:設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)USB/EPP 轉(zhuǎn)接系統(tǒng),給出其硬件設(shè)計(jì)方案并討論了相關(guān)技術(shù)細(xì)節(jié), 使其實(shí)現(xiàn)USB 接口到EPP接口的相互數(shù)據(jù)轉(zhuǎn)發(fā)。使僅具有EPP 接口的傳統(tǒng)儀器設(shè)備借助于USB/EPP 轉(zhuǎn)接系統(tǒng)擁有USB 總線所提供的即插即用和設(shè)備插架特性, 方便其通過USB 接口靈活接入同時(shí)擁有多個(gè)外設(shè)的計(jì)算機(jī)主機(jī)系統(tǒng)。關(guān)鍵詞:USB;EPP;轉(zhuǎn)接系統(tǒng)中圖分類號(hào):TP368.3 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1008- 0570(2005)11- 2- 0166- 03 在傳統(tǒng)的I/O 模式中,計(jì)算機(jī)外設(shè)通常映射為CPU 中固定I/O 地址,要求由主機(jī)分配一個(gè)指定的IRQ 中斷請求。由于PC 機(jī)的端口和中斷資源有限,因而使外設(shè)的可擴(kuò)展性受到局限;同時(shí),隨著電腦應(yīng)用的拓展,PC 機(jī)的外設(shè)接口越來越多,外設(shè)對系統(tǒng)資源的獨(dú)占性也容易導(dǎo)致系統(tǒng)資源沖突。由于各種外部設(shè)備不斷增加,容易導(dǎo)致各種I/O 沖突。由Intel、Compaq、Microsoft、IBM等廠商所提出的USB 總線標(biāo)準(zhǔn),基于即插即用和設(shè)備插架技術(shù),設(shè)備接入時(shí)不影響應(yīng)用程序的運(yùn)行,具有良好的可擴(kuò)充性和擴(kuò)展的方便性。目前USB 協(xié)議已經(jīng)發(fā)展到了最新的2.0 版本,可支持峰值傳輸速率為480Mbps 的高速外設(shè),可提供4~8 個(gè)USB 2.0 接口,同時(shí)通過USB 集線器(HUB)的擴(kuò)展還可以支持多達(dá)127 個(gè)外設(shè)同時(shí)連接,基本上解決了各種外設(shè)同時(shí)存在同時(shí)使用的所有問題。基于USB 接口的上述優(yōu)點(diǎn),目前的計(jì)算機(jī),特別是筆記本計(jì)算機(jī)基本上都只配備USB 接口,而取消了傳統(tǒng)的串口和并口,這對那些以前購置的需要與計(jì)算機(jī)進(jìn)行通信而只有串口或并口的各種儀器的繼續(xù)使用造成了極大的障礙。 針對傳統(tǒng)的數(shù)字化儀器與計(jì)算機(jī)通信中存在的接口不足的問題,本文設(shè)計(jì)了一個(gè)USB/EPP 轉(zhuǎn)接系統(tǒng),使其能夠從計(jì)算機(jī)的USB 接口接收數(shù)據(jù),經(jīng)過格式轉(zhuǎn)換,從USB/EPP 轉(zhuǎn)接系統(tǒng)的并行接口EPP 發(fā)送給傳統(tǒng)的儀器設(shè)備;同時(shí)也能夠從USB/EPP 轉(zhuǎn)接系統(tǒng)的并行接口EPP 接收數(shù)據(jù),將其轉(zhuǎn)化為USB 幀格式,并發(fā)送到計(jì)算機(jī)的USB 接口。從而使僅具有EPP 接口的傳統(tǒng)儀器設(shè)備借助于USB/EPP 轉(zhuǎn)接系統(tǒng),可以繼續(xù)正常使用。2 USB 總線2.1 USB 系統(tǒng)描述及總線協(xié)議USB 是一種電纜總線,支持在主機(jī)和各種即插即用外設(shè)之間進(jìn)行數(shù)據(jù)傳輸。由主機(jī)預(yù)定的標(biāo)準(zhǔn)協(xié)議使各種設(shè)備分享USB 帶寬,當(dāng)其它設(shè)備和主機(jī)在運(yùn)行時(shí),總線允許添加、設(shè)置、使用以及拆除外設(shè),這為多個(gè)儀器設(shè)備共享同一個(gè)主計(jì)算機(jī)提供了可能。USB 協(xié)議采用了管道模型的軟硬件協(xié)議,摒棄了一般外設(shè)協(xié)議的端口映射方式,從而有效地避免了計(jì)算機(jī)應(yīng)用系統(tǒng)I/O 端口地址沖突。根據(jù)功能劃分,一個(gè)USB 系統(tǒng)由三個(gè)部分組成:即USB 互連、USB 主機(jī)和USB 設(shè)備。圖1 給出了USB系統(tǒng)的通用拓?fù)浣Y(jié)構(gòu)。
上傳時(shí)間: 2013-10-09
上傳用戶:半熟1994
基于多點(diǎn)網(wǎng)絡(luò)的水廠自動(dòng)監(jiān)控系統(tǒng)設(shè)計(jì)Design of MPI Based Automatic Monitoring and Control System in Water Works劉 美 俊(湖南工程學(xué)院,湘潭411101)摘要針對水廠工作水泵多、現(xiàn)場離控制站距離遠(yuǎn)的特點(diǎn),提出了一種基于MPI多點(diǎn)網(wǎng)絡(luò)的自動(dòng)監(jiān)控系統(tǒng)的設(shè)計(jì)方法,分析了系統(tǒng)的工作原理,介紹了系統(tǒng)中數(shù)據(jù)的采集與處理、主站與從站的通信原理以及系統(tǒng)軟件的設(shè)計(jì)。由于這種系統(tǒng)的主、從站PLC之間采用MPI網(wǎng)絡(luò)通信,具有運(yùn)行可靠、性能價(jià)格比高的特點(diǎn),所以適用于中小規(guī)模水廠的分布式監(jiān)控場合。關(guān)鍵詞多點(diǎn)網(wǎng)絡(luò)主站從站監(jiān)控系統(tǒng)Abstract Ina ccordancew ithth efe atuersof w aterw orks,i. e. ,manyp umpsin o perationa ndth ep umps, farfor mt hec ontrolst ation,th em ethodo fdesigninga na utomati(〕monitoringa ndc ontorlsy stemb asedo nM PIis p resented.Th eo perationalpr incipleo fth esy stemi san alyzed,th ed atac olection,data processing; communication between master station and slave station as wel as design and system software are discussed. Because MPI network communicationis used among master station, slave stations and PLC, the system is reliable and high cost-efective. It is, suitable for smal and mediumsized water works for distrbuted monitoring and control.Keywords MPI Masterst ation Slaves tation Monitoringa ndc ontorlsy stem 自來 水 廠 的自動(dòng)控制系統(tǒng)一般分為兩大部分,一對組態(tài)硬件要求較高,投資較大。相對而言,MPI網(wǎng)是水源地深水泵的工作控制,一是水廠區(qū)變頻恒壓供絡(luò)速度可達(dá)187.5 M bps,通過一級中繼器傳輸距離可水控制,兩部分的實(shí)際距離通常都比較遠(yuǎn)。某廠水源達(dá)Ikm 。根據(jù)水廠的具體情況,確定以MPI方式組地有3臺(tái)深井泵給水廠區(qū)的蓄水池供水。水廠區(qū)的成網(wǎng)絡(luò),主站PLC為S7-300系列的CPU3121FM,從任務(wù)是對水池的水進(jìn)行消毒處理后,通過加壓泵向管站為S7-200系列的CPU222。這樣既滿足了系統(tǒng)要路恒壓供水。選用Siemens公司的S7系列可編程控求,又相對于Profibus網(wǎng)絡(luò)節(jié)省了三分之一的成本,制器(PLC)和上位機(jī)組成實(shí)時(shí)數(shù)據(jù)采集和監(jiān)控系統(tǒng), 這種分布式監(jiān)控系統(tǒng)具有較高的性能價(jià)格比。系統(tǒng)對深水泵進(jìn)行遠(yuǎn)程控制,對供水泵采用變頻器進(jìn)行恒中PLC的物理層采用RS - 485接口,網(wǎng)絡(luò)延伸選用壓控制以保證整個(gè)水廠的電機(jī)設(shè)備安全、可靠地運(yùn)帶防雷保護(hù)的中繼器,使系統(tǒng)的安全運(yùn)行得到了保行。證。MPI網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖1所示。1 多點(diǎn)網(wǎng)絡(luò)(NWI)監(jiān)控系統(tǒng)的組成Sie me ns 公司S7系列PLC通常有MP」多點(diǎn)網(wǎng)絡(luò)與Profibus現(xiàn)場總線網(wǎng)絡(luò)兩種組網(wǎng)方式。Profibus現(xiàn)場總線的應(yīng)用目前較為普遍,通用性較好,它由Profibus一DP, Profibus一FMS, Profibus一PA組成。Profibus - DP型用于分散外設(shè)間的數(shù)據(jù)傳輸,傳輸速率為9.6kbps一12Mbps,主要用于現(xiàn)場控制器與分散1/0之間的通信,可滿足交直流調(diào)速系統(tǒng)快速響應(yīng)的時(shí)間要求,特別適合于加工自動(dòng)化領(lǐng)域的應(yīng)用;Profibus - FMS主要解決車間級通信問題,完成中等傳輸速度的循環(huán)或非循環(huán)數(shù)據(jù)交換任務(wù),適用于紡織、樓宇自動(dòng)化、可編程控制器、低壓開關(guān)等;Profibus - PA型采用了OSI模型的物理層和數(shù)據(jù)鏈路層,適用于過程自動(dòng)化的總線類型。
標(biāo)簽: 多點(diǎn) 網(wǎng)絡(luò) 系統(tǒng)設(shè)計(jì) 自動(dòng)監(jiān)控
上傳時(shí)間: 2013-10-09
上傳用戶:fac1003
51單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)(含電路圖和源程序代碼) 源程序:stepper.c stepper.hex /* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */ #i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.h register unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n; unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400 /* flag1 mask byte 0x01 run cw() 0x02 run ccw() */
標(biāo)簽: 51單片機(jī) 驅(qū)動(dòng) 步進(jìn)電機(jī) C語言
上傳時(shí)間: 2013-11-09
上傳用戶:釣鰲牧馬
三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採用中斷式實(shí)現(xiàn)使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見的使用者鍵盤設(shè)計(jì)電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時(shí)去抖動(dòng) if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復(fù)位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計(jì)算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
微處理器及微型計(jì)算機(jī)的發(fā)展概況 第一代微處理器是以Intel公司1971年推出的4004,4040為代表的四位微處理機(jī)。 第二代微處理機(jī)(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。 第三代微處理機(jī) 第三代微機(jī)是以16位機(jī)為代表,基本上是在第二代微機(jī)的基礎(chǔ)上發(fā)展起來的。其中Intel公司的8088。8086是在8085的基礎(chǔ)發(fā)展起來的;M68000是Motorola公司在M6800 的基礎(chǔ)發(fā)展起來的; 第四代微處理機(jī) 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU為代表, 第五代微處理機(jī)的發(fā)展更加迅猛,1993年3月被命名為PENTIUM的微處理機(jī)面世,98年P(guān)ENTIUM 2又被推向市場。 INTEL CPU 發(fā)展歷史Intel第一塊CPU 4004,4位主理器,主頻108kHz,運(yùn)算速度0.06MIPs(Million Instructions Per Second, 每秒百萬條指令),集成晶體管2,300個(gè),10微米制造工藝,最大尋址內(nèi)存640 bytes,生產(chǎn)曰期1971年11月. 8085,8位主理器,主頻5M,運(yùn)算速度0.37MIPs,集成晶體管6,500個(gè),3微米制造工藝,最大尋址內(nèi)存64KB,生產(chǎn)曰期1976年 8086,16位主理器,主頻4.77/8/10MHZ,運(yùn)算速度0.75MIPs,集成晶體管29,000個(gè),3微米制造工藝,最大尋址內(nèi)存1MB,生產(chǎn)曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主頻25/33/50/66/75/100MHZ,總線頻率33/50/66MHZ,運(yùn)算速度20~60MIPs,集成晶體管1.2M個(gè),1微米制造工藝,168針PGA,最大尋址內(nèi)存4GB,緩存8/16/32/64KB,生產(chǎn)曰期1989年4月 Celeron一代, 主頻266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 總線頻率66MHz,0.25微米制造工藝,生產(chǎn)曰期1998年4月) Pentium 4 (478針),至今分為三種核心:Willamette核心(主頻1.5G起,FSB400MHZ,0.18微米制造工藝),Northwood核心(主頻1.6G~3.0G,FSB533MHZ,0.13微米制造工藝, 二級緩存512K),Prescott核心(主頻2.8G起,FSB800MHZ,0.09微米制造工藝,1M二級緩存,13條全新指令集SSE3),生產(chǎn)曰期2001年7月. 更大的緩存、更高的頻率、 超級流水線、分支預(yù)測、亂序執(zhí)行超線程技術(shù) 微型計(jì)算機(jī)組成結(jié)構(gòu)單片機(jī)簡介單片機(jī)即單片機(jī)微型計(jì)算機(jī),是將計(jì)算機(jī)主機(jī)(CPU、 內(nèi)存和I/O接口)集成在一小塊硅片上的微型機(jī)。 三、計(jì)算機(jī)編程語言的發(fā)展概況 機(jī)器語言 機(jī)器語言就是0,1碼語言,是計(jì)算機(jī)唯一能理解并直接執(zhí)行的語言。匯編語言 用一些助記符號(hào)代替用0,1碼描述的某種機(jī)器的指令系統(tǒng),匯編語言就是在此基礎(chǔ)上完善起來的。高級語言 BASIC,PASCAL,C語言等等。用高級語言編寫的程序稱源程序,它們必須通過編譯或解釋,連接等步驟才能被計(jì)算機(jī)處理。 面向?qū)ο笳Z言 C++,Java等編程語言是面向?qū)ο蟮恼Z言。 1.3 微型計(jì)算機(jī)中信息的表示及運(yùn)算基礎(chǔ)(一) 十進(jìn)制ND有十個(gè)數(shù)碼:0~9,逢十進(jìn)一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加權(quán)展開式以10稱為基數(shù),各位系數(shù)為0~9,10i為權(quán)。 一般表達(dá)式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二進(jìn)制NB兩個(gè)數(shù)碼:0、1, 逢二進(jìn)一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加權(quán)展開式以2為基數(shù),各位系數(shù)為0、1, 2i為權(quán)。 一般表達(dá)式: NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六進(jìn)制NH十六個(gè)數(shù)碼0~9、A~F,逢十六進(jìn)一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展開式以十六為基數(shù),各位系數(shù)為0~9,A~F,16i為權(quán)。 一般表達(dá)式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同進(jìn)位計(jì)數(shù)制之間的轉(zhuǎn)換 (二)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換 24=16 ,四位二進(jìn)制數(shù)對應(yīng)一位十六進(jìn)制數(shù)。舉例:(三)十進(jìn)制數(shù)轉(zhuǎn)換成二、十六進(jìn)制數(shù)整數(shù)、小數(shù)分別轉(zhuǎn)換 1.整數(shù)轉(zhuǎn)換法“除基取余”:十進(jìn)制整數(shù)不斷除以轉(zhuǎn)換進(jìn)制基數(shù),直至商為0。每除一次取一個(gè)余數(shù),從低位排向高位。舉例: 2. 小數(shù)轉(zhuǎn)換法“乘基取整”:用轉(zhuǎn)換進(jìn)制的基數(shù)乘以小數(shù)部分,直至小數(shù)為0或達(dá)到轉(zhuǎn)換精度要求的位數(shù)。每乘一次取一次整數(shù),從最高位排到最低位。舉例: 三、帶符號(hào)數(shù)的表示方法 機(jī)器數(shù):機(jī)器中數(shù)的表示形式。真值: 機(jī)器數(shù)所代表的實(shí)際數(shù)值。舉例:一個(gè)8位機(jī)器數(shù)與它的真值對應(yīng)關(guān)系如下: 真值: X1=+84=+1010100B X2=-84= -1010100B 機(jī)器數(shù):[X1]機(jī)= 01010100 [X2]機(jī)= 11010100(二)原碼、反碼、補(bǔ)碼最高位為符號(hào)位,0表示 “+”,1表示“-”。 數(shù)值位與真值數(shù)值位相同。 例 8位原碼機(jī)器數(shù): 真值: x1 = +1010100B x2 =- 1010100B 機(jī)器數(shù): [x1]原 = 01010100 [x2]原 = 11010100原碼表示簡單直觀,但0的表示不唯一,加減運(yùn)算復(fù)雜。 正數(shù)的反碼與原碼表示相同。 負(fù)數(shù)反碼符號(hào)位為 1,數(shù)值位為原碼數(shù)值各位取反。 例 8位反碼機(jī)器數(shù): x= +4: [x]原= 00000100 [x]反= 00000100 x= -4: [x]原= 10000100 [x]反= 111110113、補(bǔ)碼(Two’s Complement)正數(shù)的補(bǔ)碼表示與原碼相同。 負(fù)數(shù)補(bǔ)碼等于2n-abs(x)8位機(jī)器數(shù)表示的真值四、 二進(jìn)制編碼例:求十進(jìn)制數(shù)876的BCD碼 876= 1000 0111 0110 BCD 876= 36CH = 1101101100B 2、字符編碼 美國標(biāo)準(zhǔn)信息交換碼ASCII碼,用于計(jì)算 機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間傳遞信息。 3、漢字編碼 “國家標(biāo)準(zhǔn)信息交換用漢字編碼”(GB2312-80標(biāo)準(zhǔn)),簡稱國標(biāo)碼。 用兩個(gè)七位二進(jìn)制數(shù)編碼表示一個(gè)漢字 例如“巧”字的代碼是39H、41H漢字內(nèi)碼例如“巧”字的代碼是0B9H、0C1H1·4 運(yùn)算基礎(chǔ) 一、二進(jìn)制數(shù)的運(yùn)算加法規(guī)則:“逢2進(jìn)1” 減法規(guī)則:“借1當(dāng)2” 乘法規(guī)則:“逢0出0,全1出1”二、二—十進(jìn)制數(shù)的加、減運(yùn)算 BCD數(shù)的運(yùn)算規(guī)則 循十進(jìn)制數(shù)的運(yùn)算規(guī)則“逢10進(jìn)1”。但計(jì)算機(jī)在進(jìn)行這種運(yùn)算時(shí)會(huì)出現(xiàn)潛在的錯(cuò)誤。為了解決BCD數(shù)的運(yùn)算問題,采取調(diào)整運(yùn)算結(jié)果的措施:即“加六修正”和“減六修正”例:10001000(BCD)+01101001(BCD) =000101010111(BCD) 1 0 0 0 1 0 0 0 + 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 + 0 1 1 0 0 1 1 0 ……調(diào)整 1 0 1 0 1 0 1 1 1 進(jìn)位 例: 10001000(BCD)- 01101001(BCD)= 00011001(BCD) 1 0 0 0 1 0 0 0 - 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 - 0 1 1 0 ……調(diào)整 0 0 0 1 1 0 0 1 三、 帶符號(hào)二進(jìn)制數(shù)的運(yùn)算 1.5 幾個(gè)重要的數(shù)字邏輯電路編碼器譯碼器計(jì)數(shù)器微機(jī)自動(dòng)工作的條件程序指令順序存放自動(dòng)跟蹤指令執(zhí)行1.6 微機(jī)基本結(jié)構(gòu)微機(jī)結(jié)構(gòu)各部分組成連接方式1、以CPU為中心的雙總線結(jié)構(gòu);2、以內(nèi)存為中心的雙總線結(jié)構(gòu);3、單總線結(jié)構(gòu)CPU結(jié)構(gòu)管腳特點(diǎn) 1、多功能;2、分時(shí)復(fù)用內(nèi)部結(jié)構(gòu) 1、控制; 2、運(yùn)算; 3、寄存器; 4、地址程序計(jì)數(shù)器堆棧定義 1、定義;2、管理;3、堆棧形式
上傳時(shí)間: 2013-10-17
上傳用戶:erkuizhang
1 序言1.1 版本1.0-19921992 I2C 總線規(guī)范的這個(gè)版本有以下的修正• 刪除了用軟件編程從機(jī)地址的內(nèi)容因?yàn)閷?shí)現(xiàn)這個(gè)功能相當(dāng)復(fù)雜而且不被使用• 刪除了低速模式實(shí)際上這個(gè)模式是整個(gè)I2C 總線規(guī)范的子集不需要明確地詳細(xì)說明• 增加了快速模式它將位速率增加4 倍到達(dá)400kbit/s 快速模式器件都向下兼容即它們可以在0~100kbit/s 的I2C 總線系統(tǒng)中使用• 增加了10 位尋址允許1024 個(gè)額外的從機(jī)地址• 快速模式器件的斜率控制和輸入濾波改善了EMC 性能注意100kbit/s 的I2C 總線系統(tǒng)或100kbit/s 器件都沒有改變1.2 版本2.0-1998I2C 總線實(shí)際上已經(jīng)成為一個(gè)國際標(biāo)準(zhǔn)在超過100 種不同的IC 上實(shí)現(xiàn)而且得到超過50 家公司的許可但是現(xiàn)在的很多應(yīng)用要求總線速度更高電源電壓更低這個(gè)更新版的I2C 總線規(guī)范滿足這些要求而且有以下的修正• 增加了高速模式Hs 模式它將位速率增加到3.4Mbit/s Hs 模式的器件可以和I2C 總線系統(tǒng)中快速和標(biāo)準(zhǔn)模式器件混合使用位速率從0~3.4Mbit/s• 電源電壓是2V 或更低的器件的低輸出電平和滯后被調(diào)整到符合噪聲容限的要求而且保持和電源電壓更高的器件兼容• 快速模式輸出級的0.6V 6mA 要求被刪除• 新器件的固定輸入電平被總線電壓相關(guān)的電平代替• 增加了雙向電平轉(zhuǎn)換器的應(yīng)用信息
上傳時(shí)間: 2014-12-28
上傳用戶:hakim
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1