Hệ Thống Nhúng - ĐH Kỹ thuật công nghệ pot

116 363 1
Hệ Thống Nhúng - ĐH Kỹ thuật công nghệ pot

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯ NG Đ I H C K THU T CÔNG NGHI P KHOA ĐI N T B MÔN K THU T MÁY TÍNH BÀI GI NG PHÁT CHO SINH VIÊN (LƯU HÀNH N I B ) Theo chương trình 150 TC thay 180 TC ho c tương ñương S d ng cho năm h c 2009 – 2010 Tên gi ng: H th ng nhúng S tín ch : 03 Mục lục Chương I: T NG QUAN 1.1 M ñ u 1.2 Khái ni m v h nhúng 1.3 Vai trò c a h th ng nhúng s phát tri n c a lĩnh v c công ngh cao “3C “ 1.4 Đ c tính, phương pháp thi t k xu th phát tri n c a h nhúng 1.5 Môi trư ng thông minh 10 1.6 Các h ñi u hành nhúng ph n m m nhúng 11 1.6.1 H ñi u hành nhúng 11 1.6.2 Ph n m m nhúng 11 Chương II: LÝ THUY T THI T K H TH NG NHÚNG 12 2.1 Quy trình thi t k Top-Down 12 2.1.1 Pha phân tích 12 2.1.2 Pha thi t k nguyên lý 14 2.1.3 Pha thi t k k thu t 15 2.1.4 Pha xây d ng h th ng 16 2.1.5 Pha ki m tra 16 2.2 Quy trình Bottom-Up 17 2.3 Đ c t h th ng 17 2.3.1 Khái ni m ñ c t (specification) 17 2.3.2 T i c n ñ c t 18 2.3.3 Phân lo i k thu t ñ c t 19 2.3.4 ng d ng ưu vi t kh s d ng ñ c t 20 2.3.5 Phương pháp ñ c t s d ng “Máy tr ng thái h u h n FSM(Finite state machine)” 21 2.4 Các phương pháp bi u di n thu t toán 22 2.4.1 Ngôn ng t nhiên 22 2.4.2 Dùng lưu ñ 23 2.4.3 Mã gi 26 Chương III: C U TRÚC PH N C NG 27 3.1 C u trúc t ng quát c a h th ng nhúng 27 3.1.1 Ki n trúc b n 27 3.1.2 C u trúc ph n c ng 27 3.2 M t s n n ph n c ng thông d ng 34 3.3.1 H vi ñi u n 8051 35 3.3.2 H vi ñi u n AVR 36 3.3.3 H vi ñi u n PsoC 36 3.3.4 H vi ñi u n ARM 39 3.3.5 H vi ñi u n PIC 41 3.4 M t s vi m ch thư ng dùng 63 3.4.1 Nhóm linh ki n s 63 3.4.2 Nhóm linh ki n tương t 71 3.4.4 Nhóm hi n th 74 3.4.4 Nhóm chuy n đ i d li u 75 3.4.5 Nhóm IC ch c 77 3.4.6 M t s ví d ñi n hình 80 3.5 Công c thi t k , mô ph ng ki m th ph n c ng 85 3.5.1 Công c thi t k ph n c ng 85 3.5.2 Công c mô ph ng 87 3.5.3 Công c ki m th 89 3.5.4 M t s m ch ví d 89 Chương IV: PH N M M NHÚNG 93 4.1 Đ c ñi m ph n m m nhúng 93 Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 4.2 L p trình nhúng v i C 93 4.2.1 Gi i thi u v CCS 93 4.2.2 C u trúc chương trình 94 4.2.3 Các ki u d li u 94 4.2.4 M t s ch th ti n x lý 95 4.2.5 Hàm t o tr DELAY 97 4.2.6 Hàm truy c p kênh ADC 97 4.2.7 Các hàm truy xu t vào 99 4.3 M t s k thu t l p trình nhúng 101 4.3.1 X lý ng t 101 4.3.2 X lý TIMER 104 4.3.3 Truy n thông chu n RS232 106 4.4 H ñi u hành nhúng 108 4.4.1 Khái ni m yêu c u chung 108 4.4.2 B n p kh i tao Boot – loader 111 4.4.3 H ñi u hành th i gian th c 113 Danh m c hình nh Hình 1: M t s ví d v th ng nhúng thơng d ng Hình 2: Sơ đ kh i quy trình Top-Down 13 Hình 3: Sơ đ t ng qt c a h th ng ñi u n ñ ng 15 Hình 4: Sơ ñ quan h (call graph) gi a module ph n c ng phân m m h th ng ñi u n ñ ng 16 Hình 5: Sơ đ kh i quy trình Bottom-Up 19 Hình 6: Bi u ñ so sánh chi phí phát tri n h th ng s d ng d c t không s d ng 21 Hình 7: Đ c t cách th c làm vi c c a m t máy ñi n tho i s d ng máy tr ng thái h u h n 22 Hình 8: Lưu đ bi u di n thu t tốn gi i phương trình b c Hình 9: Ki n trúc b n c a HTN Hình 10: C u trúc thông d ng c a m t VXL/VĐK nhúng 27 Hình 11: Ví d v ki n trúc c a h VĐK AVR 28 Hình 12: Sơ đ kh i ch c PIC16F873A 29 Hình 13: CPU Hình 14: Ki n trúc b nh Von Newmann Havard 30 Hình 15: Nguyên lý c u t o ho t đ ng xóa c a EPROM 31 Hình 16: C u trúc nguyên lý b nh RAM 32 Hình 17: Nguyên lý n hình c a c ng I/O Hình 18: Nguyên lý k t n i Master Slave s d ng SPI 34 Hình 19: Sơ đ k t n i SPI Master v i nhi u Slaver Hình 20: C u trúc tơng quan c a vi ñi u n h 8051 c a intel 35 Hình 21: M t vài s n ph m công ngh tiêu bi u ng d ng b x lý ARM 39 Hình 22: Sơ đ kh i c a chip ARM core ARM7 42 Hình 23: Sơ đ chân PIC 18F452 45 Hình 24: C u trúc b nh c a 18F452 47 Hình 25: Sơ đ kh i PIC18F452 48 Hình 26: Sơ đ kh i g p n i vào s 49 Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái ngun Hình 27: Sơ đ kh i timer0 ch ñ 8bit 50 Hình 28: Sơ ñ kh i c a timer0 ch ñ 16bit 50 Hình 29: Sơ đ kh i timer1 51 Hình 30: Sơ đ kh i Timer2 52 Hình 31: Sơ đ kh i timer3 53 Hình 32: Sơ đ giao ti p chu n RS232 53 Hình 33: Sơ đ kh i truy n d li u UART 55 Hình 34: Sơ đ kh i gi n ñ th i gian nh n d li u 57 Hình 35: Bi u đ kh i chuy n ñ i ADC 59 Hình 36: Sơ đ kh i timer 104 Hình 37: Ki n trúc m t HĐH 109 Hình 38: Nguyên lý th c hi n c a boot - loader 111 Hình 39: C u trúc c a m t boot - loader 113 Hình 40: So sánh ki n trúc RTOS OS chu n 113 Hình 41: C u trúc m t RTOS 114 Hình 42: Mơ hình tr ng thái c a trình 116 Tài li u tham kh o Bình, N T (2008) Bài gi ng: Các k thu t ñ c t Đ i h c Bách khoa Đà n ng Công, N H (2007) H th ng nhúng s phát tri n c a lĩnh v c công ngh cao "3C" ĐH KTCN Thái Nguyên John Regehr, Assist.Prof.Dr.Osman Kaan EROL (2009) Embedded System Design Vi t, T L (2008) H TH NG ĐI U KHI N NHÚNG Hà N i: ĐH BKHN Wikipedia (2010) Retrieved from Wikipedia, Bách khoa toàn thư m : http://vi.wikipedia.org/wiki/H%E1%BB%87_th%E1%BB%91ng_nh%C3%BAng Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên Chương I: T NG QUAN M c tiêu c a chương Giúp sinh viên hi u ñư c khái ni m nh n di n ñư c m t h th ng nhúng, n m b t ñư c nhu c u vài trò quan tr ng c a h thông nhúng s phát tri n c a ngành cơng ngh cao Tóm t t Gi i thi u nêu khái ni m h th ng nhúng Trình bày vai trị c a h th ng nhúng ngành cơng ngh cao 1.1 M đ u Trong s phát tri n m nh m c a khoa h c kĩ thu t v i n n kinh t trí th c xu hư ng h i nh p toàn c u hi n nay, th gi i Vi t Nam ñang th c hi n vi c k t h p gi a ngành thu c lĩnh v c công ngh cao m t Khoa ho c s ñào t o Đó lĩnh v c khoa h c dư i ng n c : Máy tính, Đi n t - Vi n thông Đi u n t ñ ng mà ta thư ng g i “3 C” (Computer – Communication - Control) Có th nói, trình s n xu t qu n lí hi n như: h th ng đo lư ng ñi u n t ñ ng s n xu t công nghi p; h th ng di đ ng khơng dây tiên ti n, h th ng thông tin v tinh, h th ng thơng tin d a Web, ph ñi n t , thương m i ñi n t , s d li u c a nhi u ngành kinh t c a Qu c gia, h th ng thi t b Y t hi n ñ i, thi t b ñi n t dân d ng, ñ u s n ph m c a s k t h p gi a lĩnh v c khoa h c Hi n ñang th i ñ i h u PC sau giai ño n phát tri n c a máy tính l n (Mainframe) 1960-1980, s phát tri n c a PC-Internet giai ño n 1980-2000 Giai ño n h u PC-Internet đư c d đốn t năm 2000 ñ n 2020 giai ño n c a môi trư ng thông minh mà h th ng nhúng c t lõi ñang làm nên sóng đ i m i cơng ngh thơng tin nói riêng lĩnh v c cơng ngh cao “3C”, nói chung M t th c t khách quan th trư ng c a h th ng nhúng l n g p kho ng 100 l n th trư ng PC, m i nhìn th y b n i c a cơng ngh thơng tin PC Internet cịn ph n chìm c a công ngh thông tin chi m 99% s processor toàn c u n m h nhúng cịn đư c bi t đ n S c đ y c a cơng ngh đưa cơng ngh vi n t , cơng ngh vi n, cơng ngh sinh h c h i t t o nên chip c a công ngh nano, n n t ng cho nh ng thay ñ i b n lĩnh v c công ngh cao “3C, s c kéo c a th trư ng địi h i thi t b ph i có nhi u ch c thân thi n v i ngư i dùng, có m c đ thơng minh ngày c i thi n ñưa ñ n vai trò t m quan tr ng c a h th ng nhúng ngày cao n n kinh t qu c dân Phát tri n h nhúng ph n m m nhúng qu c sách c a nhi u qu c gia th gi i, nh t giai ño n h u PC hi n nư c ta ñáng ti c lĩnh v c lâu Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên ñã b lãng quên, v y c n có nh ng u ch nh phù h p chi n lư c phát tri n ñ có th theo k p, rút ng n kho ng cách t t h u ñ i v i nư c khu v c th gi i trình h i nh p n n kinh t tồn c u khơng th tránh kh i hi n 1.2 Khái ni m v h nhúng H th ng nhúng (ti ng Anh: Embedded system) m t thu t ng ñ ch m t h th ng có kh t tr đư c nhúng vào m t môi trư ng hay m t h th ng m H th ng nhúng có vai trị đ m nh n m t ph n công vi c c th c a h th ng m H th ng nhúng có th m t h th ng ph n c ng có th m t h th ng ph n m m (Wikipedia, 2010) Ví d quanh ta có r t nhi u s n ph m nhúng lò vi sóng, n i cơm n, u hịa, ñi n tho i di ñ ng, ô tô, máy bay, tàu th y, ñ u ño, c u ch p hành thơng minh v.v ta có th th y hi n h th ng nhúng có m t m i lúc m i nơi cu c s ng c a Hình 1: M t s ví d v th ng nhúng thông d ng Các nhà th ng kê th gi i ñã th ng kê ñư c r ng s chip vi x lý máy PC server, m ng LAN, WAN, Internet ch chi m kho ng 1% t ng s chip vi x lý có th gi i, 99% s vi x lý l i n m h th ng nhúng Như v y công ngh th ng không ch ñơn thu n PC, m ng LAN, WAN, Internet ph n m m qu n lý nhi u ngư i thư ng nghĩ Đó ch b n i c a m t t ng băng chìm Ph n chìm c a cơng ngh thơng tin ng d ng c a h nhúng có m t m i ngành ngh c a ñ i s ng xã h i hi n Các h nhúng đư c tích h p thi t b ño lư ng ñi u n t o nên ñ u não linh h n c a s n ph m Trong h nhúng, h th ng u n nhúng đóng m t vai trò h t s c quan tr ng Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái ngun H u n nhúng h th ng mà máy tính ñư c nhúng vào vòng ñi u n c a s n ph m nh m ñi u n m t ñ i tư ng, ñi u n m t q trình cơng ngh đáp ng yêu c u ñ t H th ng ñi u n nhúng l y thông tin t c m bi n, x lý tính tốn thu t u n phát tín hi u ñi u n cho c u ch p hành Khác v i h th ng ñi u n c ñi n theo nguyên lý th y l c, khí nén, rơle, m ch tương t , h ñi u n nhúng h th ng u n s đư c hình thành t nh ng năm 1960 ñ n Trư c ñây h ñi u n s thư ng máy tính l n đ m nhi m, ngày ch c ñi u n s chíp vi x lý, h nhúng ñã thay th Ph n m m ñi u n ngày tinh s o t o nên ñ thông minh c a thi t b ngày chi m t tr ng l n giá thành c a thi t b Đi m qua v ch c x lý tin PC thi t b nhúng có nh ng nét khác bi t Đ i v i PC m ng internet ch c x lý ñang ñư c phát tri n m nh lĩnh v c qu n lý d ch v thương m i ñi n t , ngân hàng n t , ph ñi n t , thư vi n ñi n t , ñào t o t xa, báo ñi n t ng d ng thư ng s d ng máy PC ñ bàn, m ng WAN, LAN ho t đ ng th gi i o Cịn đ i v i h nhúng ch c x lý tính tốn đư c ng d ng c th cho thi t b v t lý (th gi i th t) mobile phone, qu n áo thơng minh, thi t b n t c m tay, thi t b y t , xe ô tô, t u t c hành, phương ti n v n t i thơng minh, máy đo, đ u đo, c u ch p hành thông minh, h th ng u n, nhà thơng minh, thi t b gia d ng thông minh v.v 1.3 Vai trò c a h th ng nhúng s phát tri n c a lĩnh v c công ngh cao “3C “ Các h th ng t ñ ng ñã ñư c ch t o nhi u công ngh khác thi t b máy móc t ñ ng b ng cam ch t khí, h th ng t đ ng ho t ñ ng b ng nguyên lý khí nén, th y l c, rơle ñi n, m ch ñi n t s thi t b , h th ng có ch c x lý m c ñ t ñ ng th p so v i h th ng t ñ ng hi n ñ i ñư c xây d ng n n t ng c a h th ng nhúng Trong h th ng tin h c s d ng máy tính đ h tr t đ ng hóa trình qu n lý, h th ng ñi u n t ñ ng dùng máy tính ñ ñi u n t ñ ng hóa q trình cơng ngh Chính v y thành t u c a công ngh ph n c ng công ngh ph n m m c a máy tính n t đư c áp d ng phát tri n m t cách có ch n l c hi u qu cho h th ng ñi u n t ñ ng Và s phát tri n vũ bão c a công ngh thông tin kéo theo s phát tri n không ng ng c a lĩnh v c t đ ng hóa Ta có th th y q trình h nhúng thâm nh p vào t ng ph n t , thi t b thu c lĩnh v c t ñ ng hóa đ u đo, c u ch p hành, thi t b giao di n v i ngư i v n hành th m chí vào rơle, contactor, nút b m mà trư c hoàn tồn làm b ng khí Trư c đ u ño g m ph n t bi n ñ i t tham s đo sang tín hi u n, m ch khuy ch ñ i, m ch l c m ch bi n ñ i sang chu n 4-20mA đ truy n tín hi u đo v trung tâm x lý Hi n ñ u ño ñã tích h p c chip vi x lý, bi n ñ i ADC, b truy n d li u s v i ph n m m ño ñ c, l c s , tính tốn truy n k t qu m ng s v Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên th ng máy tính trung tâm Như v y đ u đo đư c s hóa ngày thông minh ch c x lý t máy tính trung tâm trư c ñã ñư c chuy n xu ng x lý t i ch b ng chương trình nhúng đ u ño Tương t v y c u ch p hành mơtơ đư c ch t o g n k t h u v i c b servo v i thu t tốn u ch nh PID t i ch kh n i m ng s t i máy tính ch Các t rơle ñi u n chi m di n tích l n phịng u n ñư c co g n PLC(programble Logic Controller) Các bàn ñi u n v i hàng lo t ñ ng h ch báo, phím, núm u n, b t ghi gi y c ng k nh ñư c thay th b ng m t vài PC H th ng cáp truy n tín hi u analog 4-20mA, ± 10V t ñ u ño, c u ch p hành v trung tâm ñi u n nh ng nh t trư c ñây ñã ñư c thay th b ng vài cáp ñ ng tr c ho c cáp quang truy n d li u s Ta có th nói h nhúng “thay th chi m ph n ngày nhi u” ph n t , h th ng thu c lĩnh v c công ngh cao “3C” Vào nh ng năm 30 h th ng t ñ ng b ng cam ch t khí thư ng ho t ñ ng ñơn l v i m t ch c x lý Các h th ng t ñ ng dùng rơle ñi n t xu t hi n vào nh ng năm 40 có m c x lý kho ng 10 ch c Các h th ng t ñ ng dùng bán d n ho t ñ ng theo nguyên lý tương t (Analog) c a th p k 60 có m c x lý kho ng 30 ch c Vào nh ng năm 70 thi t b u n kh trình PLC ñ i v i m c ñ x lý lên hàng trăm vào nh ng năm 80 v i s tham gia c a máy tính n t main frame mini hình thành h th ng ñi u n phân c p v i s ch c x lý lên t i hàng ch c v n (105) Sang th p k 90 v i s phát tri n c a công ngh ph n c ng ph n m m, h th ng ñi u n phân tán ñ i(DCS) cho m c x lý lên t i hàng tr c tri u (107) Và sang th k 21, nh ng h th ng t ñ ng có tính t t ch c, có tư h p tác s có m c x lý lên t i hàng t (109) Tuy nhiên ñ ñ t ñư c đ thơng minh nh ng sinh v t s ng c n nhi u th i gian h th ng t đ ng cịn c n tích h p nhi u cơng ngh cao khác công ngh c m bi n, công ngh v t li u m i, công ngh quang laser v.v Đây xu th phát tri n c a h th ng t ñ ng ngày s d ng nhi u công ngh m i c u trúc ho t đ ng c a Trong u n q trình cơng ngh , vi c áp d ng h nhúng ñã t o kh t đ ng hóa tồn b dây chuy n s n xu t Ki n trúc h th ng ñi u n trư c t p trung v x lý t i m t máy tính ñ u ño, c u ch p hành, giao di n v i ngư i v n hành đ u đư c thơng minh hóa có nhi u ch c x lý t i ch kh n i m ng nhanh t o thành h th ng m ng máy ñi u n ho t ñ ng theo ch ñ th i gian th c Ngồi ch c u n giám sát dây chuy n s n xu t h th ng cịn có nhi u s d li u, kh t xác ñ nh kh c ph c h ng hóc, kh th ng kê, báo cáo k t h p h th ng m ng máy tính qu n lý, l p k ho ch, thi t k kinh doanh t o thành h th ng t đ ng hóa s n xu t toàn c c Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên Trong lĩnh v c rôbôt, v i s áp d ng thành t u c a h nhúng, rơbơt có th giác xúc giác Vi c áp d ng trí khơn nhân t o vào rơbơt đưa rơbơt t ng d ng ch y u công nghi p sang lĩnh v c d ch v y t K t h p v i thành t u c a n t , rơbơt ngày uy n chuy n thông minh Trong tương lai rơbơt khơng ch thay th ho t đ ng b p c a ngư i mà cịn có th thay th cơng vi c địi h i h at đ ng trí não c a ngư i Lúc h th ng ñi u n c a rôbôt không ch vi x lý m nh mà cịn có s h tr c a máy tính m ng nơron nhân t o, x lý song song nhúng rôbôt Các nghiên c u phát tri n hi n cịn giai đo n ban đ u 1.4 Đ c tính, phương pháp thi t k xu th phát tri n c a h nhúng Các h nhúng nh ng h k t h p ph n c ng ph n m m m t cách t i ưu Các h nhúng nh ng h chuyên d ng, thư ng ho t ñ ng ch ñ th i gian th c, b h n ch v b nh , giá thành ph i r l i ph i ho t ñ ng tin c y tiêu t n lư ng Các h nhúng r t đa d ng có nhi u kích c , kh tính tốn khác Ngồi h nhúng thư ng ph i ho t ñ ng mơi trư ng kh c nghi t có đ nóng m, rung xóc cao Ví d ñi u n máy diesel cho tàu bi n, thi t b c nh báo cháy n h m lò Các h th ng nhúng l n thư ng h n i m ng máy bay, tàu vũ tr thư ng có nhi u m ng nhúng k t n i ñ ki m sốt ho t đ ng u n.Trong tơ hi n đ i có đ n 80 nút m ng k t n i ñ u ño c u ch p hành ñ b o đ m tơ ho t đ ng an toàn tho i mái cho ngư i s d ng Thi t k h th ng nhúng thi t k ph n c ng ph n m m ph i h p Cách thi t k c ñi n cách xác ñ nh trư c ch c ph n m m (SW) ph n c ng (HW) r i sau bư c thi t k chi ti t ñư c ti n hành m t cách ñ c l p hai kh i Hi n ña s h th ng t đ ng hóa thi t k (CAD) thư ng dành cho thi t k ph n c ng Các h th ng nhúng hi n s d ng đ ng th i nhi u cơng ngh vi x lý, DSP, m ng chu n ph i ghép, protocol, v y xu th thi t k h nhúng hi n địi h i có kh thay đ i m m d o trình thi t k ph n HW SW Đ có đư c thi t k cu i t i ưu, trình thi t k SW HW ph i ph i h p v i ch t ch có th thay ñ i sau m i l n th ch c ho t ñ ng t ng h p Thi t k h nhúng địi h i ki n th c ña ngành v ñi n t , x lý tín hi u, vi x lý, thu t u n l p trình th i gian th c Ph n m m h nhúng ngày chi m t tr ng cao ñã tr thành m t thành ph n c u t o nên thi t b bình đ ng ph n khí, linh ki n n t , linh ki n quang h c h nhúng ngày ph c t p ñáp ng yêu c u kh t khe v th i gian th c, tiêu lư ng, ho t ñ ng tin c y n ñ nh hơn, có kh h i tho i cao, có kh k t n i m ng, có thích nghi, t t ch c cao có kh tái c u m t th c th , m t tác nhân Và có kh ti p nh n lư ng t nhi u ngu n khác (ánh sáng, rung ñ ng, ñi n t trư ng, sinh h c ) ñ t o nên h th ng t ti p nh n lư ng q trình h at đ ng Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên 10 Tuy nhiên h th ng nhúng hi n cịn ph i đ i m t v i nhi u thách Đ ph c t p c a h th ng tăng cao k t h p nhi u lĩnh v c ña ngành, k t h p ph n c ng m m, phương pháp thi t k ki m tra chưa chín mu i Kho ng cách gi a lý thuy t th c hành l n thi u phương pháp lý thuy t hoàn ch nh cho kh o sát phân tích tồn c c c a h nhúng bao g m lý thuy t ñi u n t ñ ng, thi t k máy, công ngh ph n m m, n t , vi x lý, cơng ngh h tr khác M t khác h nhúng cịn nhi u v n đ c n gi i quy t v i đ tin c y tính m c a h th ng Do h th ng nhúng thư ng ph i h i tho i v i môi trư ng xung quanh nên nhi u g p nh ng tình hu ng khơng lư ng trư c d d n ñ n h th ng b lo n Trong q trình ho t đ ng m t s ph n m m thư ng ph i ch nh l i thay ñ i nên h th ng ph n m m có th khơng ki m sốt đư c Đ i v i h th ng m , hãng th ñưa module m i, thành ph n m i vào có th gây nên s ho t đ ng thi u tin c y 1.5 Môi trư ng thông minh Công ngh bán d n phát tri n m nh theo xu th ngày r , tích h p cao, có kh tính tốn l n, kh k t n i toàn c u, kh ph i h p v i c m bi n c u ch p hành vi ñi n sinh h c, kh giao di n khơng qua bàn phím t o ti n đ s cho s bùng n c a thi t b v t d ng thông minh xung quanh ta Đây s kh i ñ u c a th i đ i h u PC - Mơi trư ng thông minh Các ph n m m nhúng chip vi h ht ng r t phong phú có đ m m d o, tái s d ng cao S c đ y c a cơng ngh s đưa cơng ngh vi n t ti p c n c ng v i công ngh sinh h c t o nên công ngh nano v i ñ ph c t p giga vào th p niên 20102020 Các chip vi h th ng x lý h n h p tương t s MS-SoC (Mixed Signal System on chip) vào giai ño n s có t transistor, 1000 lõi CPU, 100MB b nh ho t ñ ng t n s 200GHz V i nh ng vi h th ng có kh tính tốn siêu h ng vi c thi t k h nhúng s g p không thách th c x lý song song, ñ ph c t p c a ph n m m nhúng kh cung c p lư ng cho thi t b c m tay Trong tương lai lư ng cho truy n d li u s l n g p t ñ n 30 l n lư ng ho t ñ ng c a CPU Trư c ñây h th ng thư ng ñư c thi t k n n ph n c ng PC ph n m m Windown ho c Linux, ngày s lư ng h n n (platform) cho thi t k h nhúng có kho ng 25 Trong tương lai h nhúng s ñư c thi t k n n chip MS-SoC t o nên platform thi t k chuyên d ng v i s lư ng s lên ñ n 500 lo i Ta có th li t kê m t s ví d n platform raptor II cho thi t k camera s , PXA240 cho thi t k thi t b PDA, TL850 cho TV s , BLUECORE cho công ngh không dây Bluetooth, CDMA cho mobile phone 3G h MS-SoC s có kh tái c u hình s cơng c ch ch t cho s n ph m c a công ngh cao “3C” Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 102 - #INT_CCP1 : có Capture hay compare CCP1 - #INT_CCP2 : có Capture hay compare CCP2 - #INT_COMP : ki m tra b ng Comparator - #INT_EXT : ng t - #INT_EXT1 : ng t - #INT_EXT2 : ng t - #INT_I2C : có ho t đ ng I 2C - #INT_LCD : có ho t đ ng LCD - #INT_LOWVOLT : phát hi n áp th p - #INT_PSP : có data vào c ng Parallel slave - #INT_RB : b t kỳ thay ñ i chân B4 ñ n B7 - #INT_RC : b t kỳ thay ñ i chân C4 ñ n C7 - #INT_RDA : data nh n t RS 232 s n sàng - #INT_RTCC : tràn Timer - #INT_SSP : có ho t đ ng SPI hay I 2C - #INT_TBE : b ñ m chuy n RS 232 tr ng - #INT_TIMER0 : m t tên khác c a #INT_RTCC - #INT_TIMER1 : tràn Timer - #INT_TIMER2 : tràn Timer - #INT_TIMER3 : tràn Timer - #INT_TIMER5 : tràn Timer - #INT_OSCF : l i OSC - #INT_PWMTB : ng t cu PWM time base - #INT_IC3DR : ng t ñ i hư ng ( direct ) c a IC - #INT_IC2QEI : ng t c a QEI - #INT_IC1 : ng t IC d) Thi t l p c u hình ng t 1) enable_interrupts ( int_ ); // cho phép ng t ho t đ ng, int_ ng t m c c VD: enable_interrupts (int_timer0);// cho phép ng t timer làm vi c enable_interrupts (int_timer1 ) ;// cho phép ng t timer làm vi c enable_interrupts ( global );// cho phép ng t toàn c c 2) disable_interrupts (int_); // c m ng t, tham s int_ tương t ph n VD: disable_interrupts (int_timer0);// cho phép ng t timer làm vi c disable_interrupts (int_timer1 ) ;// cho phép ng t timer làm vi c disable_interrupts ( global );// cho phép ng t toàn c c 3) clear_interupt (int_); // xóa c ng t VD: Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 103 Clear_interrupts(int_time0);// xóa c ng t c a timer0 4) ext_int_edge ( source , edge ); // thi t l p ngu n ng t cho ng t ngo i vi Trong đó: - source: ng t đư c thi t l p, v i PIC 18 có ng t ngo i vi EXT0, EXT1, EXT2 tương ng v i source = 1, ho c 2, ho c - edge: = L_TO_H ng t t i c nh dương, = H_TO_L ng t t i c nh âm e) M t ví d Ví d đơn gi n chi b t ng t c ng B (b t kỳ tín hi u xu t hi n ti B4B7) sau đưa v trí tương ng c ng D Trong chương trình d dàng nh n th y chương trình khơng làm gì, ch có ng t chip m i th c hi n ñ c giá tr t B ñưa D M ch proteus Chương trình #include #device *=16 #use delay (clock = 20000000 ) #INT_RB // khai bao su dung ngat thay trang thai tren cong B Void RB_LED ( ) // chuong trinh phuc vu ngat { output_D(input_B()); // doc cong B dua cong D } void main ( ) { // cau hinh cac cong vao va ngat set_tris_b ( 0xF0 ) ; // portB = 11110000 , B4-B7 vao , B0-B3 Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 104 set_tris_d ( 0x00 ) ; // portD = 00000000 , D0-D7 enable_interrupts ( INT_RB ) ; // cho phep ngat cong B enable_interrupts ( GLOBAL ) ; // cho phep ngat toan cuc // chuong trinh chinh khong lam gi while( true ); } 4.3.2 X lý TIMER Trong t t c lo i PIC đ u tích h p b timer, v b n ch t timer b ñ m (counter), nhiên ngu n xung đ m có th ngu n ngo i vi ho c t b dao ñ ng c a h th ng Chính th v m t ch c ta có th hi u chúng có ch c năng, m t b ñ m hai b đ nh th i Hình 36: Sơ ñ kh i timer B ñ nh th i gi ng hàm DELAY, ñ t o m t kho ng th i gian tr xác ñ y, nhiên khác v i hàm DELAY ch , hàm DELAY tr CPU th c hi n m t cơng vi c khơng sinh cơng đ sinh th i gian c n tr , vi c làm t n hao hi u xu t c a CPU khơng thích h p v i h th ng yêu c u th i gian th c, cịn v i ch c đ nh th i c a timer CPU v n có th làm m t vi c khác vi c ñ nh th i giao cho Timer th c hi n, hay nói cách khác CPU timer lúc th c hi n song song Ch c counter hay cịn g i đ m s ki n, lúc b timer ph i ñư c c u hình l y ngu n xung đ m t chân ngo i vi, timer s tr thành b couter dùng cho vi c ñ m xác xung ñ u vào ñư c g i v t sensor s Các hàm x lý timer0: 1) setup_timer_0 (mode); // hàm c u hình cho timer0 Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái ngun 105 Trong : mode có th ho c nhóm tham s sau: - RTCC_INTERNAL, RTCC_EXT_L_TO_H ho c RTCC_EXT_H_TO_L - RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16, RTCC_DIV_32, RTCC_DIV_64, RTCC_DIV_128, RTCC_DIV_256 - N u PIC18 có thêm: RTCC_OFF, RTCC_8_BIT Khi s d ng h ng s ph i ñư c ghép b ng phép ho c “|” VD: setup_timer_0 (RTCC_DIV_2|RTCC_EXT_L_TO_H); 2) set_timer0(value) ; // thi t l p giá tr ñ m cho timer, lưu ý t t c b timer ñ u ñ m ti n, b tràn timer l i ti p t c ñ m t Value giá tr n p, c n lưu ý value bit n u timer 8bit, 16bit n u timer 16bit 3) get_timer0; // hàm tr v giá tr hi n th i c a timer0 Ví d : M t ví d đơn gi n s u d ng ng t timer1 #if defined( PCM ) #include #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #elif defined( PCH ) #include #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #endif // This interrupt is used to output the waveforms The interrupt // is automatically called ever 200us #INT_TIMER1 void wave_timer() { int i; set_timer1(0xFC4F); // sets timer to interrupt in 200us //… cong viec muon thuc hien sau moi 200us } void main() { setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); // Ch n ngu n xung h th ng enable_interrupts(INT_TIMER1); // cho phép ng t timer1 enable_interrupts(GLOBAL); while(TRUE); // chương trình khơng làm } Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 106 4.3.3 Truy n thơng chu n RS232 a) C u hình c ng RS232 Đ c u hình ch đ làm vi c cho công RS232 PIC t i thiêu ta ph i s d ng hai hàm sau: • #use delay (clock = xxxx ) // giá tr OSC h th ng, tham s c n xác đ h t th ng tính tốn t c đ truy n thơng • #use rs232 (option); // tùy ch n c u hình cho giao th c truy n thơng, option có th giá tr sau (m t s h ng s thông d ng): o BAUD=x: t c đ truy n thơng o XMIT=pin: chân truy n o RCV=pin: chân nh n o PARITY=X: v i x = N, E, hoăc O o STOP=X: X s bit STOP b) M t s hàm truy n thông thông d ng 1) printf ( string ) ho c Printf ( cstring , values ); //truy n m t xâu c ng RS232 Trong ñó: - string chu i h ng hay m ng ký t ( k t thúc b i ký t null ) - value danh sách bi n , cách b i d u ph y Gi ng hàm xu t hình ngơn ng C, ta ph i c u hình cho d li u đư c g i cơng RS232 g i hình Cú pháp ñ nh d ng cho value theo ki u %wt Trong w có th có ho c khơng, ch s v trí ch a giá tr Còn t ki u giá tr hi n th t có th : - C : ký t - S : chu i ho c ký t - U : s bit không d u - x : s bit ki u hex ( ký t vi t thư ng ,VD : 1ef ) - X : s bit ki u hex ( ký t vi t hoa ,VD : 1EF ) - D : s bit có d u - e : s th c có lu th a VD : e12 - f : s th c - Lx : s hex 16 /32 bit ( ký t vi t thư ng ) - LX : hex 16 /32 bit ( ký t vi t hoa ) - Lu : s th p phân không d u - Ld : s th p phân có d u VD: Int k =6 ; Printf ( " hello " ); Printf ( " %u " , k ); Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên 107 2) KBHIT ( ); // hàm tr v s báo trình nh n ký t thành cơng s n sàng cho vi c đ c, b ng n u trình nh n chưa hồn t t Hàm có th dùng đ h i vịng xác đ nh th i m nh n thành cơng ký t đư ng truy n 3) value=getch(); // hàm ñ c ký t t b ñ m nh n, giá tr tr v byte 4) putc(data), getch(); hàm truy n nh n m t ký t ñư ng truy n Ví d : Ví d l p trình cho PIC truy n liên t c ñ c c ng B g i công D truy n qua ñư ng RS232 chp PIC nhân, PIC nh n liên t c ñ c t ñương truy n RS232 g i c ng D Chương trình PIC truy n #include #use delay(clock=40000000) #use rs232(baud=9600 , parity=n , xmit=pin_C6 , rcv=pin_C7 ) unsigned int8 data; void main ( ) { set_tris_B(0xFF); set_tris_D(0x00); while(1){ data=input_B(); putc(data); output_D(data); } } Chương trình PIC nh n #include #use delay(clock=40000000) #use rs232(baud=9600 , parity=n , xmit=pin_C6 , rcv=pin_C7 ) unsigned int8 data; void main ( ) { set_tris_D(0x00); while(1){ while(!kbhit()); data=getch(); output_D(data); } } Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái ngun 108 Sơ đ m ch mơ ph ng Proteus 4.4 H ñi u hành nhúng 4.4.1 Khái ni m yêu c u chung Ngu n g c ñ i c a h ñi u hành đ đ m nhi m vai trị trung gian ñ tương tác tr c ti p v i ph n c ng c a máy tính, ph c v cho nhi u ng d ng ña d ng Các h ñi u hành cung c p m t t p ch c c n thi t ñ cho phép gói ph n m m ñi u n ph n c ng máy tính mà không c n ph i can thi p tr c ti p sâu H ñi u hành c a máy tính có th th y bao g m drivers cho ngo i vi tích h p v i máy tính card hình, card âm Các cơng c đ qu n lý tài ngun b nh thi t b ngo i vi nói chung Đi u t o m t giao di n r t thu n l i cho ng d ng ngư i s d ng phát tri n ph n m m n n ph n c ng có Đ ng th i tránh ñư c yêu c u hi u bi t sâu s c v ph n c ng có th phát tri n d a ngơn ng b c cao H th ng u hành b n ch t m t lo i ph n m m khác v i lo i ph n m m thông thư ng S khác bi t n hình h th ng ñi u hành ñư c n p th c thi ñ u tiên h th ng b t ñ u kh i ñ ng ñư c th c hi n tr c ti p b i b x lý c a h th ng H th ng ñi u hành ñư c vi t ñ ph c v ñi u n b x lý tài nguyên khác h th ng b i s Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 109 ñ m nhi m ch c qu n lý l p l ch trình s d ng CPU chia s tài nguyên Hình 37: Ki n trúc m t HĐH Tóm l i, h u hành th c ch t m t giao di n quan tr ng, giao ti p tr c ti p v i t ng ph n c ng c p th p ph c v cho c ngư i s d ng chương trình ng d ng th c thi n n ph n c ng h th ng Hơn n a h u hành cịn có vai trị quan tr ng vi c ñ m nhi m tác v nguyên lý chính: (1) Qu n lý trình, (2) Qu n lý tài nguyên, (3) B o v tài nguyên kh i s xâm ph m c a trình th c thi sai Yêu c u chung v i m t HĐH Như ñã ñư c bi t ñ i v i h th ng th i gian th c, yêu c u thi t k m t h ñi u hành ñ c bi t H nhúng th i gian th c l i yêu c u h ñi u hành ph i th c hi n v i m t ngu n tài nguyên thư ng r t h n h p M c dù kích thư c b nh tích h p on chip s có th tăng lên tương lai v i s phát tri n hi n h ñi u hành cho h nhúng ch nên c kho ng nh 32 Kbytes H th ng ñi u hành ñ m nhi m vi c ñi u n ch c b n c a h th ng bao g m ch y u qu n lý b nh , ngo i vi vào giao ti p v i h th ng ph n c ng M t ñi m khác bi t b n ñã bi t v h ñi u hành v i ph n m m khác th c hi n ch c u n s ki n th c thi h th ng Có nghĩa th c hi n tác v theo m nh l nh yêu c u t chương trình ng d ng, thi t b vào s ki n ng t B n nhân t tác đ ng tr c ti p t i trình thi t k h ñi u hành (1) kh th c hi n, (2) lư ng tiêu th , (3) giá thành, (4) kh tương thích Hi n có th b t g p r t nhi u h ñi u hành khác ñ c bi t cho h nhúng s tác ñ ng c a nhân t nêu H u h t chúng đ u có ki u d ng giao di n gi ng ch qu n lý th c thi tác v bên r t khác M i h ñi u hành ñư c thi t k ph c v tr c ti p ch c ñ c thù ph n c ng c a h nhúng khơng d dàng so sánh đư c gi a chúng v i Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên 110 Hai thành ph n thi t k h ñi u hành là: ph n h t nhân (kernel) chương trình h th ng H t nhân ph n lõi c a h u hành Nó đư c s d ng ñ ph c v cho b qu n lý trình, b l p l ch b qu n lý tài nguyên b qu n lý vào Ph n h t nhân ñ m nhi m ch c l p l ch, ñ ng b b o v h th ng b i vi c s d ng sai, x lý ng t…Ch c u n c a ph c v ñi u n ph n c ng bao g m ng t, ghi ñi u n, t tr ng thái b ñ nh th i gian Nó n p ph n m m ñi u n thi t b ñ cung c p ti n ích chung ph i h p v i ho t ñ ng vào v i h th ng Ph n h t nhân có vai trị u n r t quan tr ng ñ ñ m b o t t c ph n c a h th ng có th làm vi c n đ nh th ng nh t Hai ki n trúc thi t k ph n h t nhân kinh ñi n nh t ki n trúc vi h t nhân ñơn h t nhân (monolithic) Các vi h t nhân cung c p ch c ñi u hành b n c t lõi (thô) theo ch module tương ñ i ñ c l p ñ m nhi m tác v c th chuy n r i r t nhi u d ch v n hình u hành h th ng th c thi không gian ngư i s d ng Nh ch mà d ch v có th đư c kh i t o ho c c u hình l i mà khơng nh t thi t ph i kh i t o l i toàn b h th ng Ki n trúc vi h t nhân cung c p đ an tồn cao b i d ch v h th ng ch y t ng ngư i s d ng v i h n ch v truy nh p vào tài nguyên c a h th ng có th đư c giám sát Ki n trúc vi h t nhân có th đư c xây d ng m t cách m m d o đ phù h p v i c u hình ph n c ng khác m t cách linh ho t so v i ki u ki n trúc h t nhân monilithic Tuy nhiên tính đ c l p tương ñ i gi a modul vi h t nhân nên c n thi t ph i có m t ch trao đ i thông tin hay truy n thông gi a modul v y có th lý làm ch m t c đ gi m tính hi u qu ho t ñ ng c a h th ng Đ c ñi m n i b t c t lõi c a ki n trúc vi h t nhân kích thư c nh d dàng s a ñ i xây d ng linh ho t Các d ch v th c thi t ng c a h t nhân v y đ t đư c đ an tồn cao Ki n trúc vi h t nhân ñư c phát tri n m nh m h th ng ña x lý ví d Windows 2000, Mach QNX Ki u ki n trúc monolithic cung c p t t c ch c năng/d ch v y u thơng qua m t qua trình x lý đơn l Chính v y kích thư c c a chúng thư ng l n ki u ki n trúc vi h t nhân Lo i hình ki n trúc thư ng ñư c áp d ng ch y u cho ph n c ng c th mà h t nhân monolithic có s tương tác tr c ti p v i ph n c ng nh v y mà kh t i ưu d dàng so v i áp d ng ki u ki n trúc vi h t nhân Chính v y lý t i ki n trúc monolithic khơng th thay đ i m m d o linh ho t ki u vi h t nhân Ví d n hình v lo i hình ki n trúc h t nhân monolithic bao g m Linux, MacOS, DOS Vì h u hành ñòi h i v tài nguyên kiêm c ch c qu n lý chúng v y ngư i thi t k c n ph i n m ñư c thông tin v chúng m t cách ñ y đ Ví d đ i v i h th ng ñi u hành cho Sun Microsystem Solaris yêu c u t i thi u không gian b nh ñĩa 8MB; Windows 2000 yêu c u kho ng g p hai l n v y Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 111 4.4.2 B n p kh i tao Boot – loader Thu t ng “bootstrap” b t ngu n t cách di n ñ t c xưa có nghĩa t vươn lên b ng n l c c a b n thân “pulling yourself up by your own bootstraps” Nó đư c s d ng m t thu t ng r t ph bi n ñ g i tên m t ph n m m th c thi vi c kh i t o chương trình th c thi n n vi n t kh trình nói chung Chương trình thư ng r t nh g n ñ m nhi m ch c ti n ho t ñ ng c a h ñi u hành Cũng r t ph bi n hi n ngư i ta thư ng dùng thu t ng “boot loader” (b n p kh i t o) thay “bootstrap” B n p kh i t o th c ch t m t chương trình nh th c hi n h th ng ñ m nhi m ch c c n thi t ñ ñưa h ñi u hành vào ho t ñ ng Trong h nhúng, l nh ñư c th c hi n ñ u tiên thư ng n m vùng nh ROM thư ng thu c lo i ch m Dó đó, m t nh ng tác v ph bi n c a b n p kh i t o chép chương trình ng d ng (main program) vào vùng b nh nhanh trư c chúng ñư c th c hi n B n p kh i t o có nhi m v kh i t o vùng nh d li u ghi h th ng trư c nh y t i chương trình ng d ng Cũng có r t nhi u d ng khác c a b n p kh i t o, t d ng ñơn gi n ñ n ph c t p D ng ñơn gi n nh t có th ch m t l nh nh y t i chương trình ng d ng sau reset mà không th c hi n b t kỳ m t tác v kh i t o hay n p chương trình Chương trình ng d ng s ph i t thi t l p ñ th c thi tác v c a Các b n p kh i t o ph c t p có th th c hi n nhi m v chu n đốn b nh kh i t o h th ng, ki m tra chương trình n p chúng trư c cho b x lý nh y t i th c hi n chương trình ng d ng Sau s tìm hi u v m t môi trư ng phát tri n n hình th o lu n v m t s thu c tính nguyên lý b n c a b n p kh i t o Hình 38: Nguy n lý th c hi n c a boot - loader Trong môi trư ng phát tri n h nhúng n hình, n n ph n c ng đích c n phát tri n ñư c k t n i v i tr m ch (host) thông qua m t giao di n truy n thông M t môi trư ng phát tri n bao g m m t chương trình g r i (debugger) ví d Code Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 112 Composer Studio c a Texas Instrument, ñ cho phép ngư i phát tri n chương trình n p th c hi n th nghi m chương trình ph n c ng đích M t s cơng c h tr ví d đ thi t l p ñi m d ng (breakpoint)…và nhi m v ph tr khác ñ bám sát tr ng thái trình th c thi th i gian th c c a chương trình th nghi m Đi u r t có ý nghĩa t o nên m t s d dàng trình phát tri n g r i m t chương trình ng d ng m i cho n n ph n c ng đích Thơng thư ng ng d ng ñư c phát tri n môi trư ng ngôn ng C chương trình ng d ng đư c th c thi n m ph m vi hàm main() ph n kh i t o chương trình n p ti n th c hi n chương trình thư ng khơng tư ng minh ho c b n ñi Th c ch t ñi u ch ñúng ñ i v i nh ng ngư i phát tri n mã chương trình ng d ng b ng ngơn ng b c cao (đ c bi t cho ng d ng không ph i cho h nhúng) mà không c n ph i quan tâm nhi u ñ n tác v s ñ m nhi m vi c kh i t o ghi h th ng, ngăn x p d li u…Đi u r t có ý nghĩa ñ t o m t c m giác môi trư ng phát tri n thân thi n cho ngư i phát tri n chương trình ch c n t p trung ph n th c hi n ch c c a h th ng Tuy nhiên môi trư ng phát tri n h th ng nhúng vi c th c thi chương trình thư ng b t ñ u t i ñ a ch chương trình nơi b t đ u tác v kh i t o h th ng trư c nh y t i th c hi n chương trình main() Q trình đư c b t đ u th c ch t th c thi m t tác v ng t kích ho t b i s ki n reset Boot loader có nhi u d ng khác Hình 21 mơ t m t b n p kh i t o cho m t ng d ng C nhúng Trong ví d vector RESET tr t i th t c c_int00 th c hi n tác v kh i t o Ngoài vi c kh i t o ghi, ngăn x p… bi n C c n ñư c kh i t o trư c ñư c th c thi Quá trình s chép t ph n cinit vi t vào ñ a ch d li u tương ng c a chúng ph n bss Sau hồn thành chương trình main() m i ñư c g i b t ñ u th c thi Trong ví d đơn gi n b n p kh i t o t h p vector RESET v i hàm kh i t o c_int00 gi thi t r ng c chương trình b n p kh i t o chương trình ng d ng đ u n m vùng nh v t lý non volatile Trong trư ng h p h th ng ph c t p hơn, b n p kh i t o có th bao hàm c tác v chép chương trình vào vùng nh fast volatile trư c đư c g i th c thi B n p kh i t o có th đ m nhi m c ch c chu n đốn, g r i nâng c p h th ng n u có Ch c chu n đốn có th ch ki m tra b nh , ngo i vi đ tương thích tích h p h th ng Ch c g r i có th m t giao di n giám sát cung c p thông tin tr ng thái th i gian th c v h th ng mà ngư i ta v n thư ng bi t t i v i tên g i chương trình monitoring Vi c nâng c p ho c thay ñ i chương trình b n p kh i t o có th ñư c th c thi nh kh l p trình FLASH in circuit n p t b nh ngồi thơng qua giao di n v i tr m ch ho c ch c tương t Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái ngun 113 Hình 39: C u trúc c a m t boot - loader 4.4.3 H ñi u hành th i gian th c QNX m t ví d n hình v h th ng th i gian th c RTOS ñư c thi t k ñ ñáp ng yêu c u v l p l ch r t kh t khe QNX chưa th c s phù h p đ có th ñư c th c thi cho h th ng nhúng b i địi h i dung lư ng b nh không nh thư ng phù h p cho ng d ng địi h i v đ an tồn đ tin c y l n H th ng ñi u hành th i gian th c h ñi u hành h tr kh xây d ng h th ng th i gian th c Hình 40: So sánh ki n trúc RTOS OS chu n H th ng ñi u hành v i ph n lõi h t nhân ph i đ m nhi m tác v sau: X lý ng t • Lưu tr ng c nh chương trình t i th i m xu t hi n ng t • Nh n d ng l a ch n ñúng b x lý ph c v d ch v ng t Đi u n q trình • • • Đi u n ngo T o k t thúc trình/tác v L p l ch u ph i ho t ñ ng h th ng Đ nh th i i vi • X lý ng t Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên 114 • Kh i t o giao ti p vào Hình 41: C u trúc m t RTOS Tùy theo ch th c hi n xây d ng ho t ñ ng c a h t nhân ngư i ta phân lo i m t s lo i hình: (1) H th ng th i gian th c nh : V i lo i ph n m m ñư c phát tri n mà khơng c n có h u hành, ngư i l p trình ph i t qu n lý x lý v n ñ v ñi u n h th ng bao g m: • X lý ng t • Đi u n q trình/ tác v • Qu n lý b nh (2) Cơng ngh đa nhi m • M i q trình có m t khơng gian b nh riêng • Các q trình ph i đư c chia nh thành Thread chia s không gian b nh (3) Các d ch v cung c p b i h t nhân • • • • T o k t thúc trình/ tác v Truy n th ng gi a trình Các d ch v v ñ nh th i gian M t s d ch v cung c p h tr vi c th c thi liên quan ñ n ñi u n h th ng Đ c ñi m b n c a h t nhân th i gian th c n hình: • Kích thư c nh (lưu tr tồn b ROM) • H th ng ng t • Khơng nh t thi t ph i có ch b o v o Ch h tr ph n ki m tra chương trình ng d ng o Tăng t c ñ chuy n ng c nh truy n thơng gi a q trình Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên 115 o Khi trình ng d ng th c hi n u c u h th ng u hành có th đư c th c hi n thơng qua l i g i hàm thay s d ng ch ng t m m • Vi h t nhân (Micro-kernel): Bao g m m t t p nh d ch v h tr o Qu n lý q trình o Các d ch v truy n thơng gi a trình n u c n o Các ph n m m ñi u n thi t b trình ng d ng H t nhân n hình b n • Lo i h t nhân ñơn gi n nh t m t vịng l p vơ h n thăm dị s ki n xu t hi n h th ng ph n ng l i theo s thay đ i n u có • V i m t b x lý c u hình nh nh t, khơng ph i lúc có th lưu c t ng c nh khơng th thay đ i tr ngăn x p ho c vùng ngăn x p r t h n ch • Thay s d ng ghi thi t b , vịng l p thăm dị có th giám sát bi n mà ch u s thay ñ i c p nh t b i b x lý ng t • H t nhân có th đư c xây d ng cho t t c tín hi u logic ñư c ñi u n b i vịng l p nh p đư c u n b i ng t • Các tác v l n c n nhi u th i gian th c hi n có th đư c chia nh thành tác v nh ñư c th c hi n t i th i ñi m khác nh vào ch chuy n s d ng b đ m • Các h t nhân th c thi theo ch ng t r t gi ng v i lo i h t nhân th c hi n theo ch vòng l p thăm dị Nó x lý t t c tác v thơng qua d ch v ng t • Các h t nhân l n ph c t p s bao g m m t s d ch v ph ph c v cho vi c truy n thơng gi a q trình Và n u ñư c b sung ñ y ñ s tr thành m t h ñi u hành ñ y ñ Các ki u lo i h t nhân b n • H t nhân th c hi n vịng l p thăm dị • H t nhân th c hi n theo ch ng t • H t nhân trình v n hành trình Vi c l a ch n lo i h t nhân hoàn toàn tùy thu c vào b x lý kích thư c ph n m m, nhiên riêng lo i h t nhân v n hành theo q trình khơng phù h p v i b x lý nh H t nhân trình Các h t nhân trình rõ ràng ph c t p h t nhân th c hi n theo ch thăm dị u n ng t Các đư ng truy n tín hi u logic bên trình d ch v ng t đư c tích h p th c hi n thông qua vi c truy n d li u Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Công nghi p Thái nguyên 116 Hình 42: Mơ hình tr ng thái c a q trình H t nhân s ph i đ m nhi m ch c l p l ch cho q trình theo mơ hình tr ng thái • RUN: q trình đư c th c hi n • WAIT: trình ch m t s ki n ho c tín hi u vào kích ho t q trình • READY: q trình s n sàng ñư c th c hi n Các ph n t thu c tính c a m t q trình: Các ph n t c n thi t ñ ph c v cho vi c l p l ch Ví d ñ i v i ch l p l ch theo m c ñ ưu tiên s yêu c u thơng tin sau v i m i q trình: • • • • Tên (ñ a ch b nh c a ph n t trình) Tr ng thái: RUN, WAIT, READY M c ñ ưu tiên Ng c nh (dùng tr ñ qu n lý lưu c t thông tin ngăn x p) Bài gi ng H th ng nhúng 2010 – BM K thu t Máy tính – ĐH K thu t Cơng nghi p Thái nguyên ... – ĐH K thu t Công nghi p Thái nguyên 11 1.6 Các h ñi u hành nhúng ph n m m nhúng 1.6.1 H ñi u hành nhúng Khác v i PC thư ng ch y n n h ñi u hành windows ho c unix, h th ng nhúng có h u hành nhúng. .. module: 8-bit/16-bit timer/counter v i 8-bit ñ t t l l p trình ñư c Timer1 module: 16-bit timer/counter Timer2 module: 8-bit timer/counter v i ghi 8-bit (th i gian s cho PWM) Timer3 module: 16-bit... hành nhúng ph n m m nhúng 11 1.6.1 H ñi u hành nhúng 11 1.6.2 Ph n m m nhúng 11 Chương II: LÝ THUY T THI T K H TH NG NHÚNG 12 2.1 Quy trình thi t k Top-Down

Ngày đăng: 29/03/2014, 20:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan