Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
572,53 KB
Nội dung
I H C QU C GIA HÀ N I TR NG I H C CÔNG NGH Nguy n V n Kiên NG D NG VI U KHI N VÀ MÔ T GIÁMSÁT M C N KHOÁ LU N T T NGHI P Ngành: B C I H C H CHÍNH QUI n t - Vi n thơng HÀ N I 2005 C I H C QU C GIA HÀ N I TR NG I H C CÔNG NGH Nguy n V n Kiên NG D NG VI U KHI N VÀ MƠ T GIÁMSÁT M C N KHỐ LU N T T NGHI P Ngành: Cán b h B C I H C H CHÍNH QUI n t - Vi n thông ng d n: PGS TS V HÀ N I 2005 ng o Vy C KHOÁ LU N T T NGHI P NGUY N V N KIÊN cl c i nói u Ch ng 1: H vi u n 1.1: Gi i thi u chung v vi u n 1.1.1: Gi i thi u chung v h vi u n 1.1.2: Ki n trúc h vi u n 2 1.2: H vi u n AVR AT90S2313 1.2.1: S d ng ki n trúc RISC AVR 1.2.2: S kh i 1.2.3: Mô t chân 1.2.4: T ng quan v ki n trúc Ch ng 2: ULN2803A 2.1: Gi i thi u chung v h ULN 8 11 13 15 19 19 2.2: ULN2803A Ch ng 3: Mô t b c 3.1: u nh c m c a mô t b c 3.2: C u t o mô t b c 3.3: u n b c Ch ng 4: B hi n th 4.1: Các h th ng m 19 22 22 23 24 27 27 4.1.1: Gi i thi u v h th ng m 4.1.2: Chuy n i t h m sang h m 4.1.3: Các phép tính s h c h m nh phân 4.1.4: Mã hóa s h th p phân 4.2: B gi i mã bít thành ng u n 4.3: B hi n th Led n Ch ng 5: Th c nghi m 5.1: Nguyên lý ho t ng c a m ch 5.2: S nguyên lý s thu t toán 5.2.1: S nguyên lý 5.2.2: S thu t toán 5.3: Ph n m m u n m ch t lu n Ph l c 27 31 33 36 42 45 48 TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I 48 49 49 50 53 58 59 KHOÁ LU N T T NGHI P NGUY N V N KIÊN i nói u c vào th k 21 th k c a n n v n hố trí th c d a n n t ng c a khoa h c k thu t cơng ngh trình cao Khoa h c k thu t công ngh ã thâm nh p vào m i l nh v c c a cu c s ng, t n gi n n ph c t p ng c m nh n không dây WSN (Wireless Sensor Network) hi n ang c th c hi n tri n khai r ng rãi th gi i b i nh ng l i ích to l n hi u qu b t ng mà em l i có m t m ng c m nh n khơng dây có giá tr v m t th c ti n Nhóm ngun c u chúng tơi v i s d n d t c a th y ng o Vy, ã nguyên c u làm thí nghi m t t c nh ng cơng vi c có liên quan ti n t i a vào th c t Và lu n v n c a c ng m t nh ng công vi c ó Lu n v n c a tơi nghiên c u v “ ng d ng vi u n mô t giámsát m c n c ”, ch a ng n i dung t ng thay i m t cách xác cao c a u o a l i c nh báo v m c n c sông, su i, ao h vv Sau n m h c t p nghiên c u t i tr ng, c s dìu d t c a th y tồn th cán b công nhân viên nhà tr ng, em ã hồn thành khố h c a c giao tài nguyên c u này, d i s h ng d n t n tình c a th y ng o Vy Em ã hoàn thành tài, tr c h t em xin c m n s giúp c a th y tồn th cán b công nhân viên nhà tr ng c bi t th y ng o vy ã t n tình ch b o em su t trình th c hi n lu n v n Em chân thành m n th y TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P Ch NGUY N V N KIÊN ng 1: H vi u n 1.1 Gi i thi u chung v vi 1.1.1 u n Gi i thi u chung v h vi u n Trong ph n s phác th o nh ng nét v vi Nhi u tác gi ã t ng coi b vi u n u n trái tim, b não c a nhi u thi t b thông d ng Theo cách nhìn c a nhà thi t k , h u h t vi u n u t d dàng s d ng thi t k S sau th hi n ch c n ng c a vi u n n hình Kh i gi a c a hình b vi u n, có th ghép n i v i mơ t , lo i hi n th khác ( óng vai trò thi t b l i ra) v i máy tính PC, c thơng s c a b c m bi n, th m chí có th n i m ch v i vi u n khác Vi u n có th th c hi n t t c ch c n ng k mà không c n thêm linh ki n ph tr u d n n m t h th ng g n, nh v i tin c y cao giá thành h p n (vì s l ng linh ki n m n i bên h n) Máy tính PC Mơ t Led ng n i ti p nh RAM CPU ng h RTC dao ng xung nh p nh th i timer Reset, m ch phát hi n Brown - out ng I/0 ng t c m bi n Hình 1.1: M t vi NG Cơng t c ng I/0 s nh th i Watchdog TR n I H C CÔNG NGH - ch B hi n th t nh ng trình ng t u n v i thi t b bên I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P NGUY N V N KIÊN Chúng ta s xem xét b ph n khác c a b vi u n CPU: Kh i x lí trung tâm CPU (Control Processing Unit) b ph n quan tr ng nh t c a vi u n Nó th c hi n ch c n ng tìm n p l nh c l u tr b nh ch ng trình, gi i mã l nh này, th c hi n chúng, b n thân CPU c ng s k t h p c a ghi, n v s h c logic (ALU), b gi i mã l nh h th ng m ch u n nh ch ng trình: nh ch ng trình ch a t p l nh t o nên ch ng trình thích ng v i nh ng ch ng trình l n h n, m t s vi u n, b nh ch ng trình c chia thành b nh bên b nh bên ngồi B nh ch ng trình th ng lo i n nh lo i EEPROM ho c EPROM ho c Plash, Mask ROM, ho c lo i l p trình c m t l n OTP (One time Programmable) RAM: RAM b nh d li u c a vi u n có ngh a vi u n s d ng l u tr d li u CPU dùng RAM l u tr bi n c ng nh dùng làm ng n x p CPU s d ng ng n x p l u tr a ch tr v sau hoàn thành m t ch ng trình ho c m t l i g i ng t Nh ó, CPU có th ti p t c th c hi n ch ng trình t o dao ng: Vi u n th c thi ch ng trình m t t c nh t nh T c c xác nh thông qua t n s c a b t o dao ng B t o dao ng có th m t m ch dao ng RC ho c b dao ng v i m t b ph n ng b bên ch ng h n nh tinh th th ch anh ho c m ch c ng h ng LC ho c m ch RC B t o dao ng b t u ho t ng sau b vi ch kh i u n ng l i phát hi n s t c c p ngu n nuôi n áp ngu n nuôi th p: ch kh i ng l i m b o t t c linh ki n m ch ki u n bên vi u n c kh i t o tr ng thái ban d u xác nh, ng th i ghi n thi t c ng c kh i t o h p lí vi u n b t u a vào ho t ng B phát hi n s s t áp ngu n nuôi m t m ch giámsát n áp ngu n nuôi (Reset and Brown- out detector circuit) N u có s s t áp b t th ng s kh i t o l i vi u n th không làm sai l ch n i dung c a b nh ghi, n u không vi u n có th r i vào tr ng thái ho t ng thi u xác TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P NGUY N V N KIÊN ng n i ti p: ng n n cs li u n i ti p C nh n byte d li i ti p m t b ph n có tác d ng r t l n i v i ho t ng c a vi u d ng truy n thơng v i thi t b ngồi thông qua vi c truy n d ng n i ti p có th ho t ng b t kì t c truy n d li u Nó u t vi u n chuy n t ng bit d li u ngồi T ng t nh n t ng bit d li u t bên ngoài, g p bit thành m t byte g i n vi u n Có ki u truy n d li u qua c ng n i ti p truy n ng b truy n không ng b Trong truy n d li u ng b , m i bít d li u c n tín hi u xung nh p i kèm th c hi n vi c ng b , ó vi c truy n d li u khơng ng b khơng c n tín hi u ó, thông tin ng b vi c ng b c gói g n bít d li u thơng qua kho ng th i gian c a bit d li u bít start, bít stop c b sung thêm vào ng d li u ng vào s : vi u n s d ng c ng vào s trao i d li u s v i th gi i bên Khác v i c ng n i ti p truy n d li u n i ti p t ng bit m t, c ng vào s trao i d li u theo t ng byte m t ng vào t ng t : Tín hi u l i vào t ng t c x lí qua m t b bi n i t ng t - s (ADC) vi u n có th có ADC ho c b so sánh t ng t c u n b i ph n m m th c hi n vi c chuy n i t ng t - s B bi n i ADC nh n d li u thi t b nh b c m bi n (sensor) nhi t , b c m bi n áp su t Các b c m bi n th ng cung c p tín hi u n áp d i d ng t ng t Tín hi u n l i t ng sau c x lí b i b bi n i s - t ng t (ADC) H u h t b vi u n u có b u ch r ng xung PWM (Pulse Width Modulator) ta có th dùng u ch nh n tín hi u n áp t ng t nh m ch l c RC thích h p bên ngồi B bi n i DAC c dùng u n mô t , hi n th hình tr c quan i v i b ch th âm l ng tr c ây), phát âm thanh, ti ng nh c nh th i: Vi u n s d ng b nh th i qui nh th i gian s ki n, ch ng n xu t d li u hình v i m t t n s ó Vi u n s dùng b nh th i t o t n s ó B nh th i c ng c dùng m s ki n x y bên c ng nh bên Trong tr ng h p ó b nh th i c g i b m TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P NGUY N V N KIÊN nh th i Watchdog WDT (Watchdog timer): Là m t b nh th i c bi t th ng c dùng ng n ng a nh ng s c ph n m m WDT ho t ng nh sau: Nó làm t ng giá tr m t b m bên v i tt c m ó N u ch ng trình ng i dùng khơng t l i b m b m b tràn làm cho vi u n c kh i ng l i Ph n m m c a ng i dùng c p trình m t cách h p lý cho WDT c t l i m t cách u n N u ch ng trình ng i dùng b l i, khơng t l i WDT t t h n h t kh i ng l i h th ng N u không h th ng s g p s c ho c r i vào tr ng thái không ho t ng (treo) RTC (Real time clock): ng h nh th i gian th c (RTC) m t b u tr thông tin v ngày tháng nh th i CPU nh th i dao ng timer Watchdog ng UART c bi t có nhi m v ch nh ng trình RAM Bus d li u bit ng vào t ng t Hình 1.2 : M t vi ng vào s u n bit Hình minh h a m t h vi u n n hình nh ng thi t b r t a d ng v kích th c ph c t p C ng nh vi x lý (t c CPU t chíp), vi u n c ng c phân lo i theo r ng c a ghi bên ghi t ng bit, 16 bit, 32 bit (ho c 64 bit) Thông th ng m t h th ng bit ng có ngh a CPU c n i v i b ph n khác thông qua bus d li u bit TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P NGUY N V N KIÊN Trong s lo i vi u n khác nhau, lo i vi u n bit có l ng bán th tr ng l n nh t N m 1999, l ng bán th tr ng c a chíp bit tr giá 4,8 t ô la Trong th tr ng c a c chíp 16 bit 32 bit k t h p l i ch chi m x p x 452 tri u ô la Các b vi u n bit nh h n c ng có m t chi m t ph n nh th tr ng Các vi u n có bus d li u l n có th ho t ng h n nh ng giá tr c a công c giúp phát tri n l i t h n so v i vi u n v i bus d li u nh n Các vi u n bit ph bi n nh t khơng ch giá th p (so v i b vi u n 16 bit 32 bit) cơng c phát tri n cho chúng c ng r h n nhi u Hi n nay, chúng c ch t o v i ch tiêu ch t l ng m c tích h p thi t b ngo i vi ngày cao Bên c nh cách phân lo i d a r ng c a bus d li u bên trong, b vi u n c phân lo i d a ki n trúc n n t ng c a chúng Ph n ti p theo s xem xét t i ki n trúc c a b vi u n 1.1.2 Ki n trúc h vi u n Ki n trúc c a h vi u n c phân lo i d a nh ng ch tiêu khác M t cách phân lo i th ng g p nh t c d a vào t p l nh m t ch tiêu quan tr ng s l ng l nh theo cách ó vi u n c phân ra: • Máy tính có t p l nh ph c t p CIRC (Complex Instruction Set Computer) • Máy tính có t p l nh rút g n RISC (Reduced Instruction Set Computer) • Máy tính có t p l nh t i thi u MISC (Mininal Instruction Set Computer) Tuy nhiên thu t ng th ng b nh ng ng i làm công vi c ti p th làm cho l n l n M t b vi x lý CISC th ng ch có nhi u c tính “gi ng nh RISC“, u d n n s m h ánh giá ho c gây m t n t ng không rõ ràng t cách phân lo i khác d a cách th c truy c p b nh d li u b nh ch ng trình N u chúng h p nh t thành m t b nh nh t g i ki n trúc Princeton hay ki n trúc Von Neumann Ng c l i n u chúng tách r i g i ki n trúc Harvard TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P NGUY N V N KIÊN t cách phân lo i khác n a d a vào cách l u tr thao tác d li u CPU Thao tác d li u công vi c c a m t b vi u n M t b vi u n (ho c m t b vi x lý) thao tác d li u theo ch ng trình c a ng i dùng, ph ng th c u tr truy c p d li u CPU c ng nh ph ng th c x lý chúng t o nên s khác ki n trúc vi u n Có mơ hình thao tác c b n: Ng n x p, ghi t ng, ghi - b nh ghi - ghi hi u c s khác gi a ki u ki n trúc (trên c s vi c qu n lý li u bên trong) ta th tìm hi u dãy mã (chu i l nh) dùng th c hi n phép tính sau: C = A - B; ây A, B, C bi n t máy tính ki u ng n x p th c hi n phép tính nh sau: Push A Push B Sub Pop C Trong máy tính ki u ng n x p n v s h c logic ALU nh n t t c toán ng t ng n x p c t gi t t c toán h ng ng c tr v ng n x p n p bi n vào ng n s p, ta s d ng m t l ch Push Var (Push + tên bi n) Ng n x p ho t ng theo nguyên t c t giá tr cu i vào nh c a ALU s truy c p lên giá tr c a ng n x p th c hi n phép tính (c ng tr , chia ) K t qu c u tr tr l i vào nh c a ng n x p t vi u n theo mơ hình ghi t ng th c hi n phép tính nh sau: Trong phép tính, m t toán h ng c ng m nh ghi t ng nên th c i phép tính u th c hi n ghi t ng (TGT) Load A; N p bi n A vào ghi tích l y Sub B; Tr i bi n B t n i dung c a ghi tích y (thanh ghi t ng) l u tr k t qu ng c tr v ghi tích l y (accumulator) Store C; ch a k t qu vào bi n C L u giá tr c a ghi tích l y, ang t máy tính ki u ghi - b nh th c hi n phép tính nh sau: Load Rx, A; TR NG I H C CÔNG NGH - N p bi n A vào ghi Rx I H C QU C GIA HÀ N I KHOÁ LU N T T NGHI P NGUY N V N KIÊN chân: nc: Hình 4.7: S TR NG I H C CÔNG NGH - Không k t n i chân c a Led segment I H C QU C GIA HÀ N I 48 KHOÁ LU N T T NGHI P Ch NGUY N V N KIÊN ng 5: Th c nghi m 5.1 Nguyên lý ho t ng c a m ch: Ban u ta ch t m ch mô t qui nh u o v trí A, u o tr m vào c n c chân PD0 s c l p lên (ban u PD0 m c th p, ngh a u o không tr m vào n c), ó ch ng trình kéo lên s th c hi n, n u khơng có n c b m ln c kh i phát xét xem giá tr b m ã th i gian t gi ch a (t bi n th i gian mà ta có th t ng t), n u r i ch ng trình kéo xu ng s c th c hi n u o c chuy n xu ng d i, l i ch ng trình s ln ln hi n th cao c a u o, t ó ch ng trình a l i c nh báo v cao a m c (theo m c) Vòng quay mơ u o m=0 A ma mét m=1 B na mét m=2 C la mét m=3 D m=4 E Hình 5.1 : Ho t TR NG I H C CÔNG NGH - mét ng c a u o I H C QU C GIA HÀ N I 49 KHOÁ LU N T T NGHI P 5.2 S nguyên lý s 5.2.1 S nguyên lý : Hình 5.2: TR NG I H C CÔNG NGH - NGUY N V N KIÊN thu t toán : S nguyên lý m ch nt I H C QU C GIA HÀ N I 50 KHOÁ LU N T T NGHI P 5.2.2 S NGUY N V N KIÊN thu t toán: thu t toán t ng quát: t Ch t mô t u u o v trí A m=0 Kh i phát b m N Có tín hi u c khơng th i gian t gi ch a N Y Y Kéo lên Hi n th Hình 5.3: TR NG I H C CƠNG NGH - cao Kéo xu ng u o thu t toán t ng quát I H C QU C GIA HÀ N I 51 KHOÁ LU N T T NGHI P thu t toán ch NGUY N V N KIÊN ng trình kéo lên m=0? Y t thúc N m=1? Y Kéo lên ma mét N m=2? Y Kéo lên na mét N m=3? Y Kéo lên la mét N m=4? Y Kéo lên mét m-1 Hình 5.4: TR NG I H C CƠNG NGH - thu t tốn ch ng trình kéo lên I H C QU C GIA HÀ N I 52 KHOÁ LU N T T NGHI P thu t toán ch NGUY N V N KIÊN ng trình kéo xu ng: m=0? Y Th xu ng ma mét N m=1? Y Th xu ng na mét N m=2? Y Th xu ng la mét N m=3? Y Th xu ng mét N t thúc Hình 5.5: TR NG m+1 S I H C CÔNG NGH - thu t tốn ch ng trình th xu ng I H C QU C GIA HÀ N I 53 KHOÁ LU N T T NGHI P 5.3 Ph n m m Ch NGUY N V N KIÊN u n m ch: ng trình #include” io2313v.h” #include” macros.h” void Hienthi ocaodaudo(unsigned int dem); void Keolen(unsigned int dem); void Keolencuthe(unsigned int buoc); void Keoxuong(unsigned int dem); void Keoxuongcuthe(unsigned int buoc); void main() { DDRD = 0xFF; Port D l i PortD = PortD | 0x32; While(1) { Vitri1: TCCR0 = 0x01; B DDRD = 0x00; m 0, v i t n s 4Mhz t Port D l i vào If (PortD & 0x01 = 1) Keolen(dem) Else { If ( TCNT0>= t ) Keoxuong( dem ) Else Goto Vitri1; }; Hienthivitridaudo(dem); } Vitri2: } TR NG I H C CÔNG NGH - I H C QU C GIA HÀ N I 54 KHOÁ LU N T T NGHI P Ch NGUY N V N KIÊN ng trình kéo xu ng Void Keoxuong(unsigned int dem ) { Switch(dem) { Case 0: Keoxuongcuthe(m); Case 1: Keoxuongcuthe(n); Case 2: Keoxuongcuthe(l); Case 3: Keoxuongcuthe(r); Case 4: Goto Vitri2; } dem = dem +1; } Ch ng trình kéo xu ng c th Void Keoxuongcuthe(unsigned int buoc) { unsigned int j; DDRD = 0xFF; For ( j = ; j