BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CNTT
------------

BÀI TẬP LỚN
MÔN HỌC: NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI : TÌM HIỂU PHẦN MỀM NHÚNG
Giáo viên hướng dẫn : Th.s Hoàng Quang Huy
Nhóm thực hiên:
1.Nguyễn Văn Hậu
2.Nguyễn Bách Phong

Hà Nội 1- 2013

Quy trình phát triển phần mềm nhúng

Nhóm 19 KHMT2 K5

LỜI NÓI ĐẦU
Trong thế giới hiện đại ngày nay, khi mà Công nghệ thông tin quan trọng hơn bao
giờ hết, sự phát minh các máy móc ngày càng phức tạp để phục vụ sản xuất và đời sống,
vấn đề áp dụng phần mềm nhúng vào máy móc để điều khiển theo ý muốn con người
càngđược đặt lên hàng đầu. Con người ngày càng nâng cao yêu cầu về tính năng của máy
móc lẫn phần mềm chạy trên nó để phục vụ cho những mục đích, yêu cầu khác nhau. Do
đó cần thiết phải có một quy trình phát triển hệ nhúng nói chung và phần mềm nhúng nói
riêng trở nên cần thiết để tạo ra những phần mềm nhanh hơn, tiết kiệm hơn và ít hỏng hóc
hơn.. Tài liệu là Bài Tập Lớn của nhóm Sinh Viên lớp KHMT2-K5, trường Đại Học
Công Nghiệp Hà Nội với đề tài Trình bày về Quy trình phát triển phần mềm nhúng , sẽ
đưa đến kiến thức sơ lược về hệ nhúng, phần mềm nhúng,ứng dụng, cơ sở lý thuyết cũng
như quy trình phát triển của nó nó. Mặc dù đã hết sức cố gắng nhưng vẫn không tránh
khỏi một số thiếu sót, hy vọng được người đọc góp ý chân thành.
Nhóm Sinh Viên xin được gửi lời cảm ơn chân thành tới Giảng Viên – Thạc sỹ
Hoàng Quang Huy đã tận lòng giúp đỡ, hướng dẫn trong quá trình học tập môn học.
Hà Nội, ngày 4 tháng 1 năm 2013
Nhóm Sinh Viên.
Nguyễn Văn Hậu
Nguyễn Bách Phong

Giảng viên – Thạc sỹ : Hoàng Quang Huy

2

Quy trình phát triển phần mềm nhúng

Nhóm 19 KHMT2 K5

MỤC LỤC
LỜI NÓI ĐẦU .........................................................................................................1
MỤC LỤC ...............................................................................................................3
MỤC LỤC BẢNG, HÌNH VẼ. ................................................................................5
CHƯƠNG 1 : MỞ ĐẦU ..........................................................................................6
1.1 Đặt vấn đề ......................................................................................................6
1.2. Phạm vi nghiên cứu. ......................................................................................6
1.3 Cấu trúc Bài tập lớn ........................................................................................7
CHƯƠNG 2 : PHẦN MỀM NHÚNG VÀ HỆ THỐNG NHÚNG ............................8
2.1. Hệ thống nhúng .............................................................................................8
2.2 Phần Mềm Nhúng ..........................................................................................9
2.3.1. Khái niệm ...............................................................................................9
2.3.2. Đặc điểm .............................................................................................. 11
2.3.3. So sánh phần mềm nhúng với phần mềm thông thường. ..................... 11
2.3 Lĩnh vực ứng dụng của Hệ Nhúng .............................................................. 12
2.4 Đặc điểm công nghệ và xu thế phát triển của hệ nhúng ................................ 13
2.4.1 Đặc điểm công nghệ ............................................................................... 13
2.4.2 Xu thế phát triển và sự tăng trưởng của hệ nhúng, phần mềm nhúng. ... 14
CHƯƠNG 3: QUY TRÌNH PHÁT TRIỂN PHẦN MỀM NHÚNG ....................... 17
3.1 Ngôn ngữ phát triển phần mềm nhúng. ......................................................... 17
3.2 Quy trình phát triển....................................................................................... 19
3.2.1. Các bước phát triển phần mềm nhúng ................................................... 20
3.2.2. Một số mô hình phát triển. ..................................................................... 20
3.2.2.1 Mô hình thác nước ........................................................................... 20
3.2.3 Chi tiết phát triển phần mềm nhúng ........................................................ 22
3.2.3.1 Phân tích .......................................................................................... 22
3.2.3.2. Thiết kế ........................................................................................... 24
3.2.3.3 Mã hóa và kiểm thử. ......................................................................... 25
3.2.3.4. Kiểm thử, gỡ lỗi. ............................................................................. 26
CHƯƠNG 4: TRIỂN KHAI VÀ CÀI ĐẶT PHẦN MỀM NHÚNG ....................... 27
Giảng viên – Thạc sỹ : Hoàng Quang Huy

3

Quy trình phát triển phần mềm nhúng

Nhóm 19 KHMT2 K5

4.1 Ví dụ Thiết kế mạch quang báo giao tiếp bàn phím máy tính. ....................... 27
4.1.1. Cơ sở lý thuyết. ..................................................................................... 27
4.1.1.1 Giới thiệu vi điều khiển ATmega16L ............................................... 27
4.1.1.2 Led ma trận ...................................................................................... 34
4.1.1.3 Bàn phím PS/2 ................................................................................. 36
4.1.2 Sơ đồ khối. ............................................................................................. 38
4.1.2.1 Sơ đồ khối ........................................................................................ 38
4.1.2.2 Chức năng các khối .......................................................................... 38
4.1.3 Thiết kế ..................................................................................................39
4.1.3.1 Thiết kế các khối .............................................................................. 39
4.1.3.2 Sơ đồ nguyên lý ............................................................................... 39
4.1.3.3 Linh kiện sử dụng trong mạch .......................................................... 42
4.1.4 Cài đặt .................................................................................................... 43
4.1.4.1 Sơ đồ mạch in .................................................................................. 43
4.1.4.2 Hàn và lắp linh kiện ......................................................................... 44
4.1.4.3 Kết quả thi công ............................................................................... 45
4.2. Kết luận từ Ví dụ thực tế.............................................................................. 45
TÀI LIỆU THAM KHẢO...................................................................................... 46

Giảng viên – Thạc sỹ : Hoàng Quang Huy

4

.............................................................6 Led ma trận 8x8 ............................................. 21 Hình 3....... 25 Hình 4....2 Sơ đồ khối mô hình thác nước..................................... 41 Hình 4................................................ .... 11 Hình 3..........2 Thanh ghi UCSRA .............................................................................................................. 35 Hình 4......................11 Sơ đồ khối .....................................9 Mã scancode của bàn phím................................ 19 Hình 3.................................................................... Bảng 3............................................. 9 Hình 2................... 38 Hình 4......1: Ba bước trong quy trình phát triển một phần mềm nhúng ................2 Bộ nhớ chương trình ............................................................................. 11 Hình 2.................................................................. 40 Hình 4.......... .................................................................. 29 Hình 4....... 37 Hình 4.............................. 29 Hình 4...........................................1 Minh họa một số thiết bị có phần mềm nhúng ............10 Giản đồ thời gian truyền 1 byte từ bàn phím đến thiết bị chủ ..............................1 Lưu đồ quá trình phát triển hệ thống nhúng .................5 Thanh ghi UBRRH và UBRRL ............. 31 Bảng 4................... 43 Giảng viên – Thạc sỹ : Hoàng Quang Huy 5 ............................................................... 31 Bảng 4.................................................... 36 Hình 4........................................................ 20 Bảng 4....................7 Sáng chữ A........1 Sơ đồ chân của ATmega16L ................................................Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 MỤC LỤC BẢNG...............................14 Mạch in mạch vi điều khiển........13 Mạch nguyên lý mạch led ma trận ........................5 Độ dài dữ liệu truyền ........................ 38 Hình 4...........2Phần mềm nhúng chạy trên mạch đèn LED ..............8 Cổng PS/2 ...................4 Sơ đồ quan hệ (call graph) phân mềm trong hệ thống điều khiển động cơ ..................................... 33 MỤC LỤC HÌNH VẼ Hình 2....... 23 Hình 3.......... 32 Hình 4................................... ........3 Thanh ghi UCSRB .... 33 Hình 4...............3 IC của một vi mạch điện tử..........................................4 Thanh ghi UCSRC .................................................................. 28 Hình 4....................12 Mạch nguyên lý mạch vi điều khiển .............3 Sơ đồ phân tích yêu cầu phần mềm nhúng..........................................................3 Bộ nhớ dữ liệu.............................................................................................................. 34 Hình 4..................................................

... hệ thống nhúng ở Việt Nam phát triển khá khiêm tốn so với thế giới... 45 CHƯƠNG 1 : MỞ ĐẦU 1.. Tôi tập trung nghiên cứu vào khái niệm phần mềm nhúng. Phạm vi nghiên cứu.. nó sẽ góp phần thúc đẩy sự phát triển của lĩnh vực hệ thống nhúng.. Có rất ít các tài liệu...Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 4........ Nó càng ngày càng thể hiện những đóng góp to lớn vào đời sống kinh tế xã hội của cả nhân loại.....16 Mạch thực tế ............ Trong phạm vi nghiên cứu của Bài tập lớn này.................. xe hơi.... 44 Hình 4.....2.. hay tình hình thực tế hiện nay về nhu cầu cũng như các bước phát triển như thế nào.. phòng thủ quân sự................ đến những phương tiện di chuyển thông thường như máy bay... một lĩnh vực giàu tiềm năng nhưng mới chỉ bước đầu phát triển tại Việt Nam.... chúng tôi nghiên cứu và trình bày tổng quan về hệ thống nhúng trong đó bao gồm cả phần mềm nhúng cũng như tổng quan về các thiết bị phần cứng được nhúng phần mềm.. Mỗi người khi bắt đầu bước vào lĩnh vực này........ xe điện.. các trang thiết bị y tế trong bệnh viện.... cho tới những thiết bị truyền hình và điện thoại di động chúng ta sử dụng hằng ngày.. ứng dụng của nó vào các mặt của kinh tế. đời sống xã hội. đâu đâu cũng có sự hiện diện của hệ thống nhúng. Từ những hệ thống phức tạp như hàng không vũ trụ...........15 Mạch in mạch led ma trận ...... các kĩ thuật phát triển cho phần mềm nhúng là một vấn đề cần thiết hiện nay................. các bài báo nói về phần mềm nhúng bằng Tiếng Việt cũng như không có nhiều các công cụ hỗ trợ...... ngôn Giảng viên – Thạc sỹ : Hoàng Quang Huy 6 .1 Đặt vấn đề Hệ thống nhúng rất đa dạng và phong phú... cần tìm hiểu rõ thông tin về nó.... về quy trình phát triển của phần mềm nhúng cũng như việc triển khai và bảo trì....... máy móc tự động trong công nghiệp. 1..... Cùng với sự đa dạng của các hệ thống nhúng........ Việc nghiên cứu và tìm hiểu các phương pháp........ Tuy nhiên hiện nay.......... tuy nhiên có rất ít người biết được tầm quan trọng và sự hiện hữu của chúng trong thế giới quanh ta........ Cũng như quy trình phát triển phần mềm nhúng. lĩnh vực lập trình phần mềm nhúng cũng như phần cứng góp phần tạo ra hệ thống nhúng hiện nay rất phát triển.

3 Cấu trúc Bài tập lớn Phần còn lại của Bài tập lớn có cấu trúc như sau : Chương 2 : Phần mềm nhúng và Hệ thống nhúng. Giới thiệu về phần mềm nhúng và hệ thống nhúng.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 ngữ để lập trình phần mềm nhúng. các bước để phát triển một phần mềm nhúng thông thường. Giảng viên – Thạc sỹ : Hoàng Quang Huy 7 . Chương 5 : Kết luận từ những vấn đề nghiên cứu. Chương 3 : Trình bày về quy trình. Chương 4 : Giới thiệu phương pháp triển khai và quy trình bảo trì phần mềm nhúng trong thực tế. Và sau cùng tôi đi sâu vào giới thiệu việc triển khai và bảo trì phần mềm nhúng để đảm bảo tính ổn định của nó 1.

. Trong số đó vẫn còn ứng dụng cả các Chip vi xử lý 8 bit..Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 CHƯƠNG 2 : PHẦN MỀM NHÚNG VÀ HỆ THỐNG NHÚNG Kỷ nguyên công nghệ mới đã và đang tiếp tục phát triển không ngừng nhằm thông minh hoá hiện đại hoá thông suốt các hệ thống. thiết bị đo lường điều khiển.1. tủ lạnh. Có thể nói đánh dấu sự ra đời và phát triển của hệ nhúng trước tiên phải kể đến sự ra đời của các bộ vi xử lý. Gắn liền với sự phát triển phần cứng. vi điều khiển.. Từ đó khởi nguồn cho làn sóng ra đời của hàng loạt các chủng loại vi xử lý và gắn liền là các hệ nhúng để thâm nhập rộng khắp trong các ứng dụng hàng ngày của cuộc sống chúng ta ví dụ như.) và văn phòng làm việc (máy fax. Thập kỷ 80 có thể được coi là khởi điểm bắt đầu kỷ nguyên của sự bùng nổ về phát triển các hệ nhúng. ví dụ như các thiết bị truyền thông. Hệ thống nhúng Trong thế giới thực của chúng ta bất kỳ một thiết bị hay hệ thống điện/điện tử có khả năng xử lý thông tin và điều khiển đều có thể tiềm ẩn trong đó một thiết bị hay hệ nhúng. chúng là hệ nhúng. Nó được đánh dấu bởi sự ra đời của Chip vi xử lý đầu tiên 4004 vào năm 1971 cho mục đích tính toán thương mại bởi một công ty Nhật bản Busicom và sau đó đã được chắp cánh và phát triển vượt bậc bởi Intel để trở thành các bộ siêu xử lý như các Chip được ứng dụng cho PC như ngày nay. 2. Các bộ vi xử lý và phần mềm cũng ngày càng được sử dụng rộng rãi trong rất nhiều các hệ thống nhỏ. các thiết bị điện tử sử dụng cho sinh hoạt hàng ngày (lò vi sóng. TV. điều hoà .). máy giặt. camera…Rất dễ dàng để có thể kể ra hàng loạt các thiết bị hay hệ thống như vậy đang tồn tại quanh ta. các thiết bị phục vụ sinh hoạt hàng ngày như lò vi sóng. 16 bit và hiện nay chủ yếu vẫn là 32 bit (chiếm khoảng 75%).. máy giặt. Các loại vi xử lý được sử dụng trong các hệ thống nhúng hiện nay đã vượt xa so với PC về số lượng chủng loại (chiếm đến 79% số các vi xử lý đang tồn tại) và vẫn còn tiếp tục phát triển để nhằm đáp ứng và thoả mãn rất nhiều ứng dụng đa dạng. Vậy hệ nhúng thực chất là gì và nên hiểu thế nào về hệ nhúng? Hiện nay cũng chưa có một định nghĩa nào thực sự thoả đáng để được chuẩn hoá và thừa nhận Giảng viên – Thạc sỹ : Hoàng Quang Huy 8 . phần mềm nhúng cũng đã phát triển với tốc độ nhanh không thua kém thậm chí sẽ tăng nhanh hơn rất nhiều theo sự phát triển hệ nhúng.. máy điện thoại.. máy in.

1 Minh họa một số thiết bị có phần mềm nhúng 2. Hình 2. các cổng giao tiếp với các phần cứng khác… Mục đích của phần mềm nhúng là nhằm hỗ trợ cho các sản phẩm phần cứng các chức năng hoàn hảo nhất. điều khiển. cụ thể (Trái ngược với máy tính PC mà chúng ta thường thấy được sử dụng không phải cho một chức năng mà là rất nhiều chức năng hay phục vụ chung cho nhiều mục đích). bộ nhớ ghi chép đƣợc. ổ cứng. Khái niệm Phần mềm nhúng là gì ? Phần mềm nhúng là một chƣơng trình đƣợc viết.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 rộng rãi cho hệ nhúng mà vẫn chỉ là những khái niệm diễn tả về chúng thông qua những đặc thù chung. tổ hợp của nhiều hệ thống nhúng ví dụ như card màn hình. Chúng là những tổ hợp của phần cứng và phần mềm để thực hiện một hoặc một nhóm chức năng chuyên biệt. các thiết bị đo lường.1. modem. bàn phím…Chính điều này làm chúng ta dễ lúng túng nếu được hỏi nên hiểu thế nào về PC. âm thanh.3. phục vụ tốt nhất các nhu cầu của ngƣời dùng với sự bảo mật về sản phẩm tốt nhất.2 Phần Mềm Nhúng 2. Tuy nhiên ở đây chúng ta có thể hiểu hệ nhúng là một phần hệ thống xử lý thông tin nhúng trong các hệ thống lớn. truyền thông và thiết bị thông minh nói chung. Phần mềm Giảng viên – Thạc sỹ : Hoàng Quang Huy 9 . biên dịch trên máy tính và nạp vào một hệ thống khác (gọi tắt là KIT) bao gồm một hoặc nhiều bộ vi xử lý đã đƣợc cài sẵn một hệ điều hành. có phải là hệ nhúng hay không. phức hợp và độc lập ví dụ như trong ôtô. PC thực chất lại là một hệ thống lớn.

tự động hoá điều khiển. Giảng viên – Thạc sỹ : Hoàng Quang Huy 10 . Sự tích hợp này được thực hiện qua các thiết bị thông minh và phần mềm nhúng là bộ não của các thiết bị đó. máy điều hoà nhiệt độ… • Đó là phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp. Có thể lấy các sản phẩm sau làm ví dụ: máy ảnh kỹ thuật số. máy giặt . hoặc những sản phẩm lớn như đèn giao thông. màn hình tinh thể lỏng. máy in laser. các bảng quảng cáo sử dụng hệ thống đèn LED. chúng ta sẽ bƣớc tới kỷ nguyên của "Hậu-PC" (thời đại của hậu máy tính cá nhân) và khi đó thì phần mềm nhúng sẽ là phần đa số của ngành công nghiệp phần mềm. Thế giới ngày này nhắm tới sự tích hợp của ngành tin học với các ngành ứng dụng khác. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao. • Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và máy chơi nhạc MP3. lò vi ba. • Có khả năng tự trị. quan trắc và truyền tin. Một số ví dụ phần mềm nhúng: Sản phẩm phần mềm nhúng rất đa dạng.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 nhúng có các tính chất sau: - Phụ thuộc vào hệ điều hành cài sẵn trên KIT - Phụ thuộc vào các tính năng đặt trƣng của từng sản phẩm phần cứng có trong KIT - Phụ thuộc vào đặc tính của hệ thống Phần mềm nhúng là sự tích hợp của ngành tin học (phần mềm) với ngành điện tử (phần cứng). máy photocopy. Với các các thiết bị điện tử. bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân. phần mềm nhúng mang lại nhiều sự hữu ích cần thiết cho ngƣời sử dụng và đồng thời giảm chi phí giá thành về phần cứng cho thiết bị. phong phú. chạy trong các thiết bị mà không cần tới hệ điều hành. thuộc nhiều chủng loại. máy FAX. Trong thời gian không xa.

Giảng viên – Thạc sỹ : Hoàng Quang Huy 11 .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 2.Chủ yếu trên PC với các . So sánh phần mềm nhúng với phần mềm thông thường. phục vụ tốt nhất các nhu cầu của người dùng với sự bảo mật về sản phẩm tốt nhất.3.2. Win CE. 2. • Mục đích: Nhằm hỗ trợ cho các sản phẩm phần cứng các chức năng hoàn hảo nhất.2Phần mềm nhúng chạy trên mạch đèn LED 2.Chạy được trên nhiều hệ điều hành như thiết bị điện tử.Nền tảng hoạt động Phần mềm thường Phần mềm nhúng . Linux. Đặc điểm • Phần mềm được tích hợp vào trong các IC của thiết bị điện tử.3. được cài Windows.3 IC của một vi mạch điện tử. • Ưu điểm nhỏ gọn. Mac… đặt hệ điều hành nhúng như Android. DOS …. Hình 2.3. Tiêu chí . dễ cài đặt và sản xuất hàng loạt. QNX.

Texas. thường chỉ cần 1 hay 2 mềm được nhúng vào.Lập trình. 2. một phần mềm.3 Lĩnh vực ứng dụng của Hệ Nhúng Chúng ta có thể kể ra được rất nhiều các ứng dụng của hệ thống nhúng đang được sử dụng hiện nay. .. và xu thể sẽ còn tiếp tục tăng nhanh.Các hệ điêu hành nhúng . tàu điện • Truyền thông • Thiết bị y tế • Hệ thống đo lường thẩm định • Toà nhà thông minh • Thiết bị trong các dây truyền sản xuất • Rôbốt • . ngôn ngữ lập trình cho Các vi xử lý như Intel. Android. đến cấu trúc phần cứng khác nhau : Symbian. QNX… . ARM….Phải hiểu biết về cấu của môi trường hoạt động trúc phần cứng mà phần . các thiết bị ngoại vi liên quan tới phần mềm.Không cần quá quan tâm . Nhóm 19 KHMT2 K5 .Quy trình phát triển phần mềm nhúng . Bảng 2.Thiết bị ngoại vi. xử lý tín hiệu số …. Phải biết được các kiến thức như vi xử lý.Người lập trình phải PC sẽ giúp giao tiếp với quan tâm tới việc xử lý các thiết bị ngoại vi..Thường phần mềm trên . của thiết bị. Một số các lĩnh vực và sản phẩm thị trường rộng lớn của các hệ nhúng có thể được nhóm như sau: • Các thiết bị điều khiển • Ôtô.Gắn liền với framenwork . Giảng viên – Thạc sỹ : Hoàng Quang Huy 12 .1 So sánh phần mềm nhúng với phần mềm thông thường.

Tính bảo mật Hiệu quả: Yêu cầu này được thể hiện thông qua một số các đặc điểm của hệ thống như sau: . Câu trả lời thực ra nằm ở các yêu cầu tăng lên không ngừng trong các ứng dụng công nghệ hiện nay.Hiệu quả về thời gian thực hiện . Một câu hỏi đặt ra là tại sao hệ thống nhúng lại phát triển và được phổ cập một cách nhanh chóng như hiện nay.Kích thước về phần cứng và phần mềm . Khả năng này làm tăng thêm sự chuyên biệt hoá về chức năng của một hệ thống lớn và dễ dàng hơn cho quá trính xây dựng. vận hành và bảo trì. Giảng viên – Thạc sỹ : Hoàng Quang Huy 13 .Độ an toàn .1 Đặc điểm công nghệ Các hệ thống như vậy đều có chung một số đặc điểm như yêu cầu về khả năng thời gian thực.Độ tin cậy . Ví dụ như một vi xử lý thực hiện một phần điều khiển cho một chức năng thu thập.4.Giá thành Phân hoạch tác vụ và chức năng hoá: Các bộ vi xử lý trong các hệ nhúng thường được sử dụng để đảm nhiệm và thực hiện một hoặc một nhóm chức năng rất độc lập và cũng đặc thù cho từng phần chức năng của hệ thống lớn mà nó được nhúng vào.Sự phổ cập và tiện sử dụng .Khả năng bảo trì và nâng cấp . Một trong những yêu cầu cơ bản đó là: Khả năng độc lập và thông minh hoá: Điều này được chỉ rõ hơn thông qua một số các thuộc tính yêu cầu. cụ thể như: .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 2. độ tin cậy.Kích thước và khối lượng .4 Đặc điểm công nghệ và xu thế phát triển của hệ nhúng 2. xử lý và hiển thị của ôtô hay hệ thống điều khiển quá trính. tính độc lập và hiệu quả.Năng lượng tiêu thụ .

vi điều khiển Giảng viên – Thạc sỹ : Hoàng Quang Huy 14 .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Khả năng thời gian thực: Các hệ thống đều gắn liền với việc đảm nhiệm một chức năng chính và phải được thực hiện đúng theo một khung thời gian qui định. Lớp hệ thống ưu tiên cả hai tiêu chí phát triển của hai lớp trên. giá thành thấp. Chính điều này lại càng làm tăng thêm tính chuyên biệt hoá của các hệ/thiết bị nhúng mà các thiết bị đa năng không thể cạnh tranh được. tức là kích thước nhỏ gọn. phần mềm nhúng. tiêu thụ năng lượng ít. Các chíp xử lý nhúng cho lớp hệ thống ứng dụng đó thường yêu cầu về khả năng tính toán ít hoặc vừa phải nên hầu hết được xây dựng trên cở sở bộ đồng xử lý 8 bít ‐16 bit hoặc cùng lắm là 32 bit và không hỗ trợ dấu phảy động do sự hạn chế về dung lượng và khả năng tính toán. Tuỳ theo sự thoả hiệp giữa các yêu cầu và xu thế phát triển chính vì vậy cũng không có gì ngạc nhiên khi chúng ta thấy sự tồn tại song song của rất nhiều các Chip vi xử lý nhúng. Vì tính chuyên biệt của các thiết bị / hệ nhúng như đã giới thiệu nên các nền phần cứng cũng được chế tạo để ưu tiên đáp ứng cho chức năng hay nhiệm vụ cụ thể của yêu cầu thiết kế đặt ra. Các chíp xử lý nhúng cho các hệ thống đó cũng sẽ là các Chip áp dụng các công nghệ cao cấp với kiến trúc xử lý song song để đáp ứng được cường độ tính toán lớn và tốc độ mà các Chip xử lý đa chức năng thông thường không đạt tới được. Lớp hệ nhúng ưu tiên thực thi khả năng xử lý tính toán với tốc độ thực hiện nhanh. tốc độ tính toán nhanh. vì chúng là kết quả của sự thoả hiệp của nhiều yêu cầu và điều kiện nhằm ưu tiên cho chức năng cụ thể mà chúng được thiết kế. trong thực tế không phải hệ nhúng nào cũng đều có thể thoả mãn tất cả những yêu cầu nêu trên.2 Xu thế phát triển và sự tăng trưởng của hệ nhúng. Lớp hệ nhúng ưu tiên phát triển theo tiêu chí về kích thước nhỏ gọn. Vì sự phát triển hệ nhúng là sự kết hợp nhuần nhuyễn giữa phần cứng và phần mềm nên công nghệ gắn liền với nó cũng chính là công nghệ kết hợp giữa các giải pháp cho phần cứng và mềm.4. Thông thường một chức năng của hệ thống phải được thực hiện và hoàn thành theo một yêu cầu thời gian định trước để đảm bảo thông tin cập nhật kịp thời cho phần xử lý của các chức năng khác và có thể ảnh hưởng trực tiếp tới sự hoạt động đúng và chính xác của toàn hệ thống. 2. Tuỳ thuộc vào từng bài toán và yêu cầu của hệ thống mà yêu cầu về khả năng thời gian thực cũng rất khác nhau. Tuy nhiên. mức tiêu thụ năng lượng thấp.

.Kèm theo đó là các kỹ thuật phát triển phần mềm cho phép đảm nhiệm được các bài toán yêu cầu khắt khe trên cơ sở một nền phần cứng hữu hạn về khả năng xử lý và không gian bộ nhớ. Đứng sau sự phổ cập rộng rãi của các Chip vi xử lý vi điều khiển nhúng. Có thể nói hệ nhúng đã trở thành một giải pháp công nghệ và phát triển một cách nhanh chóng.. hứa hẹn nhiều thiết bị nhúng sẽ chiếm lĩnh được thị trường rộng lớn trong tương lai nhằm đáp ứng nhu cầu ứng dụng không ngừng trong cuộc sống của chúng ta. một số thiết bị điều khiển công nghiệp như các máy tính nhúng. Nó Giảng viên – Thạc sỹ : Hoàng Quang Huy 15 . PSOC và sự tổ hợp của chúng. WindowsXP Embedded và các công cụ phát triển ứng dụng kèm theo để phục vụ cho các thiết bị nhúng. Ngôn ngữ mã hoã phần mềm cũng thường là C hoặc gần giống như C (Likely C) thay vì phải viết hoàn toàn bằng hợp ngữ Assembly. Hiện nay cũng đã có nhiều nhà phát triển công nghệ phần mềm lớn đang hướng vào thị trường hệ nhúng bao gồm cả Microsoft. Ngoài một số các hệ điều hành Windows quen thuộc dùng cho PC.. IPC của Siemens. Không có một giải pháp nào chung và chuẩn tắc cho tất cả các hệ nhúng. Chính vì vậy thông thường các nhà phát triển và cung cấp phần cứng cũng lại chính là nhà cung cấp giải pháp phần mềm hoặc công cụ phát triển phần mềm kèm theo.. Rất phổ biến hiện nay các Chip vi xử lý hay vi điều khiển đều có các hệ phát triển (Starter Kit hay Emulator) để hỗ trợ cho các nhà ứng dụng và xây dựng hệ nhúng với hiểu biết hạn chế về phần cứng. Giải quyết các bài toán thời gian thực như phân chia tác vụ và giải quyết cạnh tranh chia sẻ tài nguyên chung. DSP phải kể đến các công nghệ cũng đang rất được quan tâm hiện nay như ASIC. 16 bit hay 32 bit cùng với các Chíp siêu xử lý khác vẫn đang được ứng dụng rộng rãi cho hệ nhúng.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 nhúng 8 bit. điển hình như các thiết bị PDA. Microsoft cũng đã tung ra các phiên bản mini như WindowsCE. Đó cũng là sự kết hợp đa dạng và sự ra đời của các hệ nhúng nói chung nhằm thoả mãn các ứng dụng phát triển không ngừng. FPGA. CPLD. Đối với lĩnh vực công nghiệp về điều khiển và tự động hoá. Với mỗi một nền phần cứng nhúng thường có những đặc thù riêng và kèm theo một giải pháp phát triển phần mềm tối ưu tương ứng. Trong xu thế phát triển không ngừng và nhằm thoả mãn được nhu cầu phát triển nhanh và hiệu quả có rất nhiều các công nghệ cho phép thực thi các giải pháp hệ nhúng. hệ nhúng cũng là một giải pháp đầy tiềm năng đã và đang được ứng dụng rộng rãi. Điều này cho phép các nhà thiết kế tối ưu và đơn giản hoá rất nhiều cho bước phát triển và xây dựng hệ nhúng.

từ các hệ thống tập trung đến các hệ thống phân tán.4 Biểu đồ Thị trường hệ thống nhúng năm 2003. 2004. Giải pháp hệ nhúng có thể thực thi từ cấp thấp nhất của hệ thống công nghiệp như cơ cấu chấp hành cho đến các cấp cao hơn như giám sát điều khiển quá trình. Hình 2. chuyên biệt trong các hệ thống và thiết bị công nghiệp.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 rất phù hợp để thực thi các chức năng thông minh hoá. 209(Đơn vị: Triệu USD) Giảng viên – Thạc sỹ : Hoàng Quang Huy 16 .

hay nói cách khác cũng đã được phổ cập từ lâu. các chương trình biên dịch thường khá sẵn cho hầu hết các bộ xử lý đang sử dụng hiện nay. và có rất nhiều người đã biết và làm chủ được ngôn ngữ này rồi. Thực chất đây cũng là một trong những tiêu chí xây dựng của Giảng viên – Thạc sỹ : Hoàng Quang Huy 17 . Trong phần này chúng ta sẽ cùng tìm hiểu tại sao C lại trở thành một ngôn ngữ phổ biến đến vậy và tại sao chúng ta lựa chọn nó như một ngôn ngữ minh họa cho việc lập trình hệ nhúng. Rõ ràng C có một số ưu điểm nổi bật tiêu biểu như khá nhỏ và dễ dàng cho việc học. cũng như rất nhiều các ưu điểm nổi bật khác của ngôn ngữ bậc cao nói chung. Có lẽ một thế mạnh lớn nhất của C là một ngôn ngữ bậc cao mức thấp nhất. trong các hệ thống chỉ có hữu hạn về bộ nhớ vài Kbyte hoặc Mbyte. Một trong những ngôn ngữ lập trình có lẽ phổ cập rộng rãi nhất hiện nay là ngôn ngữ C. Tức là với ngôn ngữ C chúng ta vẫn có thể điều khiển và truy nhập trực tiếp phần cứng khá thuận tiện mà không hề phải hy sinh hay đánh đổi bất kỳ một thế mạnh nào của ngôn ngữ bậc cao.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 CHƯƠNG 3: QUY TRÌNH PHÁT TRIỂN PHẦN MỀM NHÚNG 3. Cho tới nay.1 Ngôn ngữ phát triển phần mềm nhúng. ứng dụng và thể hiện bằng ngôn ngữ thân thiện thay vì phải tìm hiểu sâu về kiến thức phần cứng. Cần phải tìm một ngôn ngữ để có thể đáp ứng được yêu cầu lập trình cho các bộ xử lý từ 8‐bit đến 64‐bit. Điều này không phải là cố hữu và sẽ tồn tại mãi. So với bất kỳ ngôn ngữ lập trình nào khác đang tồn tại C thực sự phù hợp và trở thành một ngôn ngữ phát triển của hệ nhúng. Sự thành công về phát triển phần mềm thường là nhờ vào sự lựa chọn ngôn ngữ phù hợp nhất cho một dự án đặt ra. nhưng tại thời điểm này thì C có lẽ là một ngôn ngữ gần gũi nhất để trở thành một chuẩn ngôn ngữ trong thế giới hệ nhúng. điều này chỉ có C là thực sự có thể thỏa mãn và phù hợp nhất. Hơn nữa C có lợi thế là không phụ thuộc vào bộ xử lý thực thi mã nguồn. Người lập trình chỉ phải tập trung chủ yếu vào việc xây dựng thuật toán.

Kernighan và Ritchie đã đưa vào trong phần giới thiệu của cuốn sách của họ “The C Programming Language” như sau: “C is a relatively “low level” language. Đó là. Trong những buổi đầu phát triển hệ nhúng thì ngôn ngữ Assembly chủ yếu được sử dụng cho các vi xử lý đích. Ada cũng là một ngôn ngữ hướng đối tượng mặc dù nó không được phổ cập rộng rãi như C++. Tất cả các đặc điểm cốt lõi của C vẫn được kế thừa hoàn toàn trong ngôn ngữ C++ và ngoài ra còn hỗ trợ khả năng mới về trừu tượng hóa dữ liệu và phù hợp với tư duy lập trình hiện đại. Ít nhất hiện nay người ta cũng có thể biết tới ngoài ngôn ngữ C là Assembly. Hiên nay nó chỉ được sử dụng chủ yếu như điểm nối giữa ngôn ngữ bậc cao và bậc thấp và được sử dụng khi có yêu cầu đặc biệt về hiệu suất thực hiện và tối ưu về tốc độ mà không thể đạt được bằng ngôn ngữ khác. C++. hướng đối tượng. Tuy nhiên ngôn ngữ Assembly có nhiều nhược điểm mà cũng chính là lý do tại sao hiện nay nó ít được phổ cập và sử dụng. Thực tế điều này đã được đề cập đến khi hai nhà sáng lập ra ngôn ngữ C. Tuy nhiên điều này bị đánh đổi bởi hiệu suất và thời gian thực thi do đó chỉ phù hợp với các dự án phát triển chương trình lớn và không chịu sức ép lớn về thời gian thực thi. việc học và sử dụng ngôn ngữ Assembly rất khó khăn và đặc biệt khó khăn trong việc phát triển các chương trình ứng dụng lớn phức tạp. C++ là một ngôn ngữ kế thừa từ C để nhằm vào các lớp ứng dụng và tư duy lập trình hướng đối tượng và cũng bắt đầu chiếm được số lượng lớn quan tâm trong việc ứng dụng cho phát triển hệ nhúng. Ada được xây dựng bởi cơ quan quốc phòng Mỹ để phục vụ phát Giảng viên – Thạc sỹ : Hoàng Quang Huy 18 . Ngôn ngữ Assembly chỉ thực sự phù hợp cho những người có kinh nghiệm và hiểu biết tốt về cấu trúc phần cứng đích cũng như nguyên lý thực hiện của bộ lệnh và chíp xử lý. This characterization is not pejorative.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 những người sáng lập ra ngôn ngữ C muốn hướng tới. it simply means that C deals with the same sort of objects that most computers do. Với ngôn ngữ này cho phép người lập trình điều khiển và kiểm soát hoàn toàn vi xử lý cũng như phần cứng hệ thống trong việc thực thi chương trình. These may be combined and moved about with the arithmetic and logical operators implemented by real machines…” Tất nhiên là C không phải là ngôn ngữ duy nhất cho các nhà lập trình nhúng. và Ada.

sau đây là lưu đồ quá trình phát triển của hệ thống nhúng.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 triển các phần mềm quân sự chuyên dụng đặc biệt. Mặc dù cũng đã được chuẩn hóa quốc tế (Ada83 và Ada95) nhưng nó vẫn không được phổ cập rộng rãi ngoài việc ứng dụng chủ yếu trong các lĩnh vực quân sự và hàng không vũ trụ.2 Quy trình phát triển.1 Lưu đồ quá trình phát triển hệ thống nhúng Cũng như phần mềm chạy trên PC. Giảng viên – Thạc sỹ : Hoàng Quang Huy 19 . đây cũng là một điều đáng tiếc vì bản thân Ada cũng là một ngôn ngữ có nhiều đặc điểm phù hợp cho việc phát triển phần mềm hệ nhúng thay vì phải sử dụng C++. Sau đây ta sẽ tìm hiểu về những bước phát triển phần mềm chung. 3. trước khi đi sâu vào quá trình phát triển. Và nó cũng dần dần bị mất ưu thế và sự phổ cập trong thời gian gần đây. phần mềm nhúng cũng có một quy trình phát triển tương tự. Phần mềm nhúng là một thành phần trong hệ thống nhúng. Development Phase Hardware Selection Software Assembly for Target System Test Hardware Developing using Burn codes using devices programer Edit-Test-Debug Cycle Test result OK OK Reassemble on Hardware Error YES Redesign on Software Error END Hình 3.

Sau đây sẽ giới thiệu về mô hình thác nước – mô hình thường được các nhà phát triển sử dụng để phát triển phần mềm nhúng do tính đơn giản của nó. cầu hệ thống Dự kiến việc giao tiếp với ngươi dùng. lập trình và test lỗi là nội dung chính của bước này. yêu cầu với người dùng cuối và thời gian hoàn thành phàn mềm Xác định được khung thời gian phát triển phần mềm. vòng đời của phần mềm. hạn chế của thiết kế.2. Các yêu cầu kĩ thuật được xác định dữ liệu. Các giai đoạn chính trong bước phát triển phần mềm : Cấu Phát triển phần mềm trúc dữ liệu.2: Ba bước trong quy trình phát triển một phần mềm nhúng Bước phát triển Hoạt động Xác định rõ nét các yêu cầu.2.2. Phần mềm nhúng nói riêng ít cần sự hỗ trợ sau khi đã triển khai phần mềm vào các hệ nhúng xác định. thông số kĩ thuật là yêu cầu của phần này. mô hình xoắn ốc.2. phương pháp test lỗi (việc kiểm tra. Một số mô mình phát triển phần mềm thường dùng như mô hình thác nước. Hỗ trợ ở đây chủ yếu là sửa Support chữa những lỗi phát hiện được và nâng cao một số chức năng có thể. Thiết kế phần mềm. test lỗi rất quan trọng đối với bất kì phần mềm nào). 3. Các bước phát triển phần mềm nhúng Bảng 3.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 3. chức năng. mô hình tuyến tính. Một số mô hình phát triển.1 Mô hình thác nước Giảng viên – Thạc sỹ : Hoàng Quang Huy 20 . Xác định và phân tích yêu Dự kiến cách làm. nhiệm vụ cần làm.1. giao diện người dùng. mô hình phát triển nhanh. xây dựng chức năng.2. các thuật toán và ngôn ngữ lập trình. 3.

Thiết kế chia làm 2 giai đoạn là: thiết kế logic và thiết kế vật lý. các chức năng phần mềm cần phải thực hiện. Mô hình thác nước của tiến trình phần mềm. các ràng buộc mà phần mềm cần tuân thủ khi nó được phát triển và hoạt động. Nó yêu cầu tiếp cận một cách hệ thống. Sau đó. Mô hình thác nước hay còn gọi là mô hình vòng đời truyền thống do Royce đề xuất năm 1970. các giao diện cho người sử dụng. Thiết kế tập trung vào 4 bước chính sau: thiết kế kiến trúc.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 3. Giảng viên – Thạc sỹ : Hoàng Quang Huy 21 . Phân tích (analysis) Trước hết việc phân tích yêu cầu được tập trung vào việc thu thập và phân tích các thông tin cần cho phần mềm. Quy trình phát triển Bao gồm việc thu thập yêu cầu ở mức hệ thống với một lượng nhỏ thiết kế và phân tích ở mức đỉnh. thiết kế dữ liệu. lập tư liệu về yêu cầu cho hệ thống và phần mềm để khách hàng duyệt lại. tuần tự và chặt chẽ đối với việc phát triển phần mềm. thiết kế các thủ tục và thiết kế các giao diện. Thiết kế (design) Thiết kế là quá trình chuyển hóa các yêu cầu phần mềm thành các mô tả thiết kế.2 Sơ đồ khối mô hình thác nước. hiệu năng cần có của mỗi chức năng.

Kiểm thử (testing) Khi đã có chương trình mã nguồn .Tiến trình kiểm thử tập trung vào phát hiện và sửa lỗi trong trương trình.Nó đưa ra các phương pháp khoa học. Việc bảo trì có thể áp dụng lại các bước của vòng đời phát triển cho hệ chương trình hiện có khi có nhu cầu tiếp tục phát triển. Nếu chương trình gặp lỗi khi kết thúc mới phát hiện ra thì có thể sẽ là một thảm họa. việc thích ứng nó với thay đổi của môi trường bên ngoài hoặc bổ sung chức năng hay nâng cao hiệu năng cần có khi khách hàng yêu cầu.3.Quá trình lặp lại thì dễ gặp bất trắc.2. các tài liệu đặc tả rất lớn. Bảo trì (maintenance) Phần mềm cần phải hoàn thiện trước khi nó được giao cho khách hàng .3 Chi tiết phát triển phần mềm nhúng 3.Nó tốt hơn nhiều lần cách tiếp cận tự nhiên.2.Tuy nhiên. Thời gian thực hiện dự án theo mô hình này thường dài.1 Phân tích Giảng viên – Thạc sỹ : Hoàng Quang Huy 22 . các bước tổng quát áp dụng được cho nhiều mô hình.Đó là việc kiểm tra va sửa lỗi khi đưa chương trình vào sử dụng.Mặt khác.việc kiểm thử bắt đầu.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Mã hóa (coding) Mã hóa là dịch các đặc tả thiết kế thành các chương trình mã nguồn trong một ngôn ngữ lập trình nào đó mà máy có thể thực hiện được.mà lặp lại thì khó quản lý được tiến độ và không đáp ứng được nhu cầu của khách hàng. khách hàng phải kiên nhẫn tới cuối dự án mới có chương trình làm việc được.các dự án phần mềm thực tế hiếm khi tuân theo trình tự tuần tự. 3. Ưu nhược điểm Vòng đời cổ điển là mô hình có sớm nhất và được sử dụng rộng rãi nhất.

Ví dụ: Xét bài toán thiết kế hệ thống điều khiển cho 1 cửa tự động Giả sử qua quá trình khảo sát thực tế và yêu cầu của bên khác hàng ta phải xác định được các thông số tối thiểu sau: a) Yêu cầu: 1) Hệ thống áp dụng cho 1 cửa hai chiều (vào/ra) 2) Cửa cao 2.3 Sơ đồ phân tích yêu cầu phần mềm nhúng.5m rộng 3m 3) Có người trong phạm vi 2m trước và sau cửa là cửa phải mở 4) Thời gian mở và đóng cửa 3s 5) Cửa đang đóng gặp vật cản phải mở ra ngay 6) Làm việc điện áp 220v/50Hz 7) Chi phí cho bộ điều khiển không quá 10 triệu VNĐ 8) Hệ thống thống có 2 chế độ làm việc tự động và bằng tay Giảng viên – Thạc sỹ : Hoàng Quang Huy 23 .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 3.

Trong các bài toán cụ thể. 7) . khả năng nâng cấp... 3. - Thời gian thử - Thời gian để thương mại sản phẩm - Độ an toàn - Khả năng chống lại sự phá hoại hay xâm nhập. - Nguồn nuôi - Tính mềm dẻo. Thiết kế Xây dựng các thiết kế chi tiết cho cả phần cứng phần mềm. nên hệ thống sẽ phải làm việc với tần suất cao. - . .. 2) Nơi đặt cửa có nhiều người qua lại. sơ đồ thuật toán.. Giảng viên – Thạc sỹ : Hoàng Quang Huy 24 . dữ liệu chia sẻ. 3) Điều kiện môi trường: Trong nhà.. Vì thế ở pha này người thiết kế phải đưa ra các bản thiết kế như: 1. độ chính xác.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 9) Sensor và công nghệ tuỳ chọn b) Điều kiện ràng buộc 1) Sử dụng động cơ động lực có sẵn loại AC một pha 220V/50Hz 3kW.. Cấu trúc dữu liệu. độ phân giải.2... khả năng tương thích. khả năng phục hồi sau khi mất nguồn. với các hệ thống mẹ cụ thể. các bản thiết kế này sẽ được chuyển sang pha thực thi để xây dựng hệ thống. Tuy nhiên vẫn có những tiêu chuẩn và yêu cầu chung mà hầu hết các hệ thống phải tính đến như: - Tính đến chi phí bảo trì định kỳ - Kích thước và trọng lượng - Khả năng thực thi: Thời gian đáp ứng. Sơ đồ khối. mỗi hệ thống nhúng sẽ có các yêu cầu khác nhau. nhiệt độ từ 180C đến 360C 4) Bộ điều khiển bằng tay đặt cạnh cửa phía bên trong nhà 5) Hệ thống điện cấp mới từ đầu 6) Chịu được quá tải khi gặp chướng ngại vật trong khoảng thời gian dài.2... 2.3.

Việc phát triển hệ thống có thể được phân tách thành nhiều nhóm. nhằm thử nghiệm hoạt động của hệ thống với các đầu vào và tình huống giả lập. điều này ảnh hưởng đến việc tích hợp các module giữa các nhóm làm việc khác nhau hay sự kế thừa từ các module khác.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 3. 3. đồng thời thử nghiệm tính thân thiện của giao diện người dùng.2. chi tiết về các đầu vào/ra. Trong suốt quá trình xây dựng phải tuân thủ theo các bước và sơ đồ công nghệ từ các bản thiết kế kỹ thuật. . Sơ đồ nguyên lý mạch. Thông số linh kiện được chọn hoặc có thể thay thế. nhằm giúp hệ thống thỏa mãn đầy đủ các thông số rằng buộc đã được đặt ra ở pha phân tích. Lựa chọn thiết bị.3 Mã hóa và kiểm thử.3.4 Sơ đồ quan hệ (call graph) phân mềm trong hệ thống điều khiển động cơ Để phát hiện và hạn chế tối đa các lỗi mà hệ thống sẽ gặp phải sau khi được xây dựng. Xây dựng sơ đồ quan hệ giữa các module và các hàm trong hệ thống (call graph). 6. Các linh kiện và thiết bị sử dụng phải tuân thủ theo bản thiết kế. Các tham số vào/ra cho hệ thống.. Từ các bản thiết kế. 4.. các tài nguyên sẽ sử dụng. Đặc biệt là các tham số vào ra giữa các hàm. nhiều phần Giảng viên – Thạc sỹ : Hoàng Quang Huy 25 . loại tín hiệu hay giao thức giao tiếp. bước này tiến hành xây dựng hoàn thiện hệ thống trên cả phân mềm và phần cứng. 7. sơ đồ này mô tả cách thức tương tác giữa phần cứng và phần mềm trong hệ thống. Hình 3. công cụ phát triển hệ thống. ta có thể mô hình hóa các thành phần hoặc toàn bộ hệ thống nếu có thể. 5.

độ chính xác. tính ổn định. thông thường người phát triển luôn sử dụng một trình mô phỏng (Simulation) với các phép thử trên các tín hiệu giả lập. Mục tiêu của pha này là đánh giá khả năng thực thi của hệ thống sau khi đã hoàn thiện. hay phải bắt đầu một chu kỳ mới với pha đầu tiên là pha phân tích bao gồm các thông tin mới thu thập được từ bước này. việc phát triển hệ thống có thể được tiến hành song song. hoặc có thể trên nhiều môi trường khác nhau miễn sao đảm bảo việc trao đổi tham số giữa các module là tương thích và đầy đủ. hoặc kế thừa cái có sẵn. thông thường ta thực hiện các bước sau: Đầu tiên ta tiến hành gỡ lỗi (debug) và kiểm định cho từng chức năng cơ bản của hệ thống. Nhiệm của của các Tester không chỉ là kiểm các tính năng của sản phẩm có phù hợp với các yêu cầu đã đề ra hay không. Tiếp theo đánh giá khả năng thực thi của hệ thống dựa trên nhiều tiêu chí khác nhau như: Tốc độ.4.… Ngày nay rất nhiều công ty trên nhiều lĩnh vực tuyển dụng nhân sự riêng cho pha này gọi là testing hay các tester. các mẫu. mà còn phải nghĩ ra các tình huống. Kiểm thử.3. Nếu chúng ta phân tách và thiết kế tốt. sẽ làm giảm thời gian phát triển hệ thống đáng kể mà vẫn đảm bảo các yêu cầu đã đặt ra.… để tìm ra các lỗi mà người thiết kế hay người phát triển chưa phát hiện ra được. Giảng viên – Thạc sỹ : Hoàng Quang Huy 26 . Một số các kỹ thuật nhằm phát hiện và hạn chế lỗi mà người phát triển có thể áp dụng trong pha này là Debug hay mô phỏng Simulation. 3. Các thông tin kết quả của bước này quyết định một sản phẩm có thể được thương mại hóa hay không.2.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 không cần tuân theo tuần tự. Tuy nhiên trong một bài toán cụ thể việc Debug là rất khó. gỡ lỗi.

1 KB SRAM cho phép nạp xóa 10000 Flash/100000 EEPROM - Có 32 chân vào ra dữ liệu chia làm 4 port : PORT A.1. GND là các chân cấp nguồn cho vi điều khiển với điện áp hoạt động là 5V - RESET là chân reset của ATmega16L. Các tính năng của ATmega16L : - Bộ nhớ Flash 16KB.1 trình bày sơ đồ chân ATmega16L - Các PORT A.1.1. 4.1. D là các Port xuất nhập của ATmega16L - VCC. 4. - XTAL1. độ ổn định. 4.1.B. 512 byte EEPROM. - Giao tiếp SPI – Giao tiếp I2C – Có 8 kênh ADC 10 bit - 2 bộ Timer/Couter 8 bit. tín hiệu reset này tích cực mức thấp.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 CHƯƠNG 4: TRIỂN KHAI VÀ CÀI ĐẶT PHẦN MỀM NHÚNG Trong chương này. sự mềm dẻo trong việc lập trình và rất tiện lợi. C. Đây là chip vi điều khiển 8 bit khá mạnh. Cơ sở lý thuyết. XTAL2 là 2 chân tạo bộ dao động ngoài cho vi điều khiển. báo cáo sẽ đưa ra ví dụ minh họa thiết kế một phần mềm nhúng chi tiết các bước để làm rõ hơn lý thuyết phát triển phần mềm nhúng đã trình bày ở các Chương trước.1.1 Giới thiệu ATmega16L là vi điều khiển thuộc họ AVR do hãng Atmel sản xuất. khả năng tích hợp.1.1 Giới thiệu vi điều khiển ATmega16L 4. có nhiều tính năng.1.C. Giảng viên – Thạc sỹ : Hoàng Quang Huy 27 .2 Khảo sát sơ đồ chân Hình 1. Tần số thạch anh sử dụng cho ATmega16L là 0 – 8 MHz. 1 bộ Timer/Couter 16 bit - 1 bộ USART 4.1.1.D và cả 4 Port đều có điện trở kéo lên. B.1 Ví dụ Thiết kế mạch quang báo giao tiếp bàn phím máy tính.

Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 - AREF là chân lấy điện áp chuẩn khi sử dụng bộ ADC. trong đó đường truyền cho bộ nhớ dữ liệu và đường truyền cho bộ nhớ chương trình được tách riêng.1.1. - AVCC là chân ổn định điện áp cho bộ biến đổi khi sử dụng bộ ADC.1 Sơ đồ chân của ATmega16L 4.1.3 Cấu trúc của ATmega16L ATmega16L có cấu trúc Havard. * Bộ nhớ chương trình : là bộ nhớ Flash lập trình được gồm 2 phần : phần đầu chứa các vector ngắt và phần mã lệnh nằm ngay sau đó. Hình 4. Giảng viên – Thạc sỹ : Hoàng Quang Huy 28 .

2 Bộ nhớ chương trình * Bộ nhớ dữ liệu : Chia thành 5 phần Hình 4.3 Bộ nhớ dữ liệu Giảng viên – Thạc sỹ : Hoàng Quang Huy 29 .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Program Memory 0000 Các vetor ngắt $028 $029 Mã lệnh 16 bits $1FFF Hình 4.

1. Tất cả các thanh ghi điều khiển. chân nhận dữ liệu (RXD). chỉ tồn tại khi gắn thêm bộ nhớ ngoài - Phần 5 : EEPROM. ngược lại giá trị 0 thì chân tương ứng sẽ là ngõ nhập. nội (Internal SRAM).1.1. thích hợp cho việc lưu dữ liệu. là thanh ghi 8 bit có chức năng chứa giá trị nhận được và phát đi của USART. Viết giá trị 1 vào một bit trong thanh ghi DDRx thì chân tương ứng của PORTx sẽ là chân xuất. Việc điều khiển các Port có liên quan đến 3 thanh ghi DDRx. tất cả 3 thanh ghi này đều nằm trong vùng nhớ I/O. chân truyền dữ liệu (TXD). 4. Phần bộ nhớ EEPROM được tách riêng và có địa chỉ tính từ 0x0000. gồm 64 thanh ghi nhập/xuất (64 I/O Register) hay còn gọi là vùng nhớ I/O (I/O Memory). Giảng viên – Thạc sỹ : Hoàng Quang Huy 30 . Chúng là nguồn chứa các số hạng trong phép toán và cũng là đích chứa kết quả trả lại của phép toán - Phần 2 : nằm ngay sau Register File. Có 3 chân liên quan đến module này là chân xung nhịp (XCK). o Thanh ghi PORTx : thanh ghi xác lập điện trở kéo lên.4 Truyền thông nối tiếp đồng bộ và không đồng bộ (USART) Vi điều khiển ATmega16L có 1 bộ USART. bộ nhớ này không bị xóa ngay cả khi mất điện. Có 5 thanh ghi liên quan đến việc điều khiển và hoạt động của USART là: * UDR : là thanh ghi dữ liệu. o Thanh ghi DDRx : thanh ghi điều khiển hướng dữ liệu vào/ra cho các chân của cổng. - Phần 4 : RAM ngoại. Các thanh ghi này được đặt tên theo thứ tự từ R0 đến R31. o Thanh ghi PINx : dùng để đọc giá trị logic trên các chân của PORTx - Phần 3 : RAM tĩnh. trạng thái… của thiết bị đều nằm ở đây.Quy trình phát triển phần mềm nhúng - Nhóm 19 KHMT2 K5 Phần 1 : Là phần đầu tiên trong bộ nhớ dữ liệu gồm 32 thanh ghi 8 bit có tên là Register File (RF). là vùng chứa các biến tạm thời trong lúc thực thi chương trình. PORTx và PINx (x là tên của Port).

- RXEN : bit điều khiển bộ nhận của USART. để kích hoạt chức năng nhận dữ liệu phải set bit này lên 1.3 Thanh ghi UCSRA - RXC : báo quá trình nhận kết thúc - TXC : báo quá trình truyền kết thúc. - UDRE : báo thanh ghi dữ liệu đang trống.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 * Bảng 4. * UCSRB : thanh ghi quan trọng điều khiển USART Bảng 4.4 Thanh ghi UCSRB - RXCIE : bit cho phép ngắt khi quá trình nhận kết thúc. - TXEN : bit điều khiển bộ truyền phát Giảng viên – Thạc sỹ : Hoàng Quang Huy 31 . - U2X : bit chỉ định gấp đôi tốc độ truyền - MPCM : bit chọn chế độ hoạt động đa xử lý. - TXCIE : bit cho phép ngắt khi quá trình truyền kết thúc.1 Thanh ghi UDR UCSRA : là 1 trong 3 thanh ghi điều khiển hoạt động của USART. thanh ghi này chủ yếu chứa các bit trạng thái Bảng 4. - UDRIE : bit cho phép ngắt khi thanh ghi UDR trống. - PE : kiểm tra Parity có lỗi. - FE : khung truyền có lỗi - DOR : dữ liệu tràn.

Nếu UMSEL=1 thì chế độ đồng bộ được kích hoạt. 8 bit đầu được chứa trong UDR. - UPM1 và UPM0 : hai bit được dùng để quy định kiểm tra Parity. - TXB8 : đóng vai trò là bit truyền thứ 9 trong chế độ truyền thồng 9 bit.4 Thanh ghi UCSRC Thanh ghi này có địa chỉ trùng với thanh ghi UBRRH (thanh ghi chứa byte cao dùng để xác lập tốc độ baud). nếu UPM1:0=11 thì Parity lẻ được dùng. nếu USBS=0 thì sẽ có 1 Stop bit. - RXB8 : đóng vai trò là bit nhận thứ 9 trong chế độ truyền thông 9 bit. Vì thế bit thứ 7 trong thanh ghi này. - UMSEL : bit chọn chế độ truyền thông đồng bộ và không đồng bộ. nếu URSEL=0 thì thanh ghi UBRRH được chọn. nếu UMSEL=0 thì chế độ không đồng bộ được sử dụng. * UCSRC : thanh ghi quy định khung truyền và chế độ truyền Hình 4. - UCSZ1 và UCSZ0 : hai bit này kết hợp với bit UCSZ2 trong thanh ghi UCSRB quy định độ dài dữ liệu truyền. Giảng viên – Thạc sỹ : Hoàng Quang Huy 32 . tức bit URSEL là bit chọn thanh ghi. Khi URSEL=1 thì thanh ghi UCSRC được chọn. nếu UPM1:0=10 thì Parity chẵn được dùng. Bảng 1. - USBS : bit Stop trong khung truyền. Nếu UPM1:0=00 thì Parity không được sử dụng.1 tóm tắt các giá trị có thể của tổ hợp 3 bit này và độ dài truyền dữ liệu tương ứng. 8 bit đầu được chứa trong UDR.Quy trình phát triển phần mềm nhúng - Nhóm 19 KHMT2 K5 UCSZ2 : bit này kết hợp với 2 bit khác trong thanh ghi UCSRC quy định độ dài của dữ liệu truyền nhận. nếu USBS=1 thì sẽ có 2 Stop bit.

Nếu ghi vào thanh ghi UBRRL thì tốc độ baud sẽ tức thì được cập nhật. Bảng 1. Nếu UCPOL=0 thì dữ liệu thay đổi ở cạnh lên của xung. 4 bit này kết hợp với 8 bit trong thanh ghi UBRRL tạo thành 12 bit quy định tốc độ baud. * UBRRH và UBRRL : hai thanh ghi thấp và cao quy định tốc độ baud Hình 4. chỉ có 4 bit thấp của UBRRH được dùng. cách tính giá trị cần thiết cho thanh ghi UBRR khi đã biết tốc độ baud.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Bảng 5.5 Thanh ghi UBRRH và UBRRL Như trong hình trên. Giảng viên – Thạc sỹ : Hoàng Quang Huy 33 .2 trình bày cách tính tốc độ baud dựa vào giá trị của thanh ghi UBRR và ngược lại. nếu UCPOL=1 thì dữ liệu thay đổi ở cạnh xuống của xung.5 Độ dài dữ liệu truyền - UCPOL : bit chỉ chế độ xung kích trong chế độ truyền thông đồng bộ. Vì thế phải ghi vào UBRRH trước sau đó mới ghi vào UBRRL.

1.6 Led ma trận 8x8 Trong led ma trận : theo hàng thì các anode được nối chung. Như vậy với led ma trận 7x5 thì có 7 hàng và 5 cột. các trường hợp còn lại led tắt. Hình 4. cho phép hiển thị ký tự bất kỳ.v. Hình 1. có 2 cách hiển thị chữ A : Giảng viên – Thạc sỹ : Hoàng Quang Huy 34 .1. theo cột thì các cathode được nối chung.10 hiển thị chữ A trên led ma trận 8x8.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Bảng 4. 8x8 (8 hàng và 8 cột) . Anode nối với mức cao(H) và cathode nối với mức thấp(L) thì led sáng.v.6 Tính tốc độ Baud 4. Trên thị trường có các loại ma trận led được tích hợp sẵn như 7x5 ( 7 hàng và 5 cột).2 Led ma trận Led ma trận là 1 tập hợp các led đơn được bố trí theo ma trận hình chữ nhật hay vuông.

sau đó - gởi byte dữ liệu ra 8 hàng (led nào sáng thì bit tương ứng bằng 1.7 Sáng chữ A Cách 1 : mã quét gởi ra cột và dữ liệu gởi ra hàng: Chọn cột 1 (bằng cách kéo cột 1 xuống mức L) các cột còn lại ở mức H . Các byte dữ liệu có thể sử dụng chương trình tạo mã ma trận để lấy mã dễ dàng. o Mỗi 1 thời điểm chỉ có 1 cột sáng nên dòng tiêu thụ thấp o Mạch đơn giản.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 4. - Chọn cột 3 sau đó gửi byte dữ liệu tương ứng ra 8 hàng. Vì thế cần đảm bảo cấp đủ dòng để led ma trận được sáng rõ. - Chọn cột 4 sau đó gửi byte dữ liệu tương ứng ra 8 hàng. Với led ma trận 8x8. nếu chọn dòng làm việc cho 1 led là 20mA thì dòng cần cho 1 cột sẽ là 20 mA * 8= 160 mA. Do tốc độ quét nhanh nên chúng ta sẽ thấy sáng cả chữ A. Giảng viên – Thạc sỹ : Hoàng Quang Huy 35 . led nào tắt thì bit tương ứng bằng 0). - Chọn cột 2 sau đó gửi byte dữ liệu tương ứng ra 8 hàng. - Ưu điểm : o Khi mở rộng thêm led chỉ cần kết nối song song 8 hàng và cột dùng thanh ghi dịch rất đơn giản do số đường điều khiển ít. - Chọn cột 5 sau đó gửi byte dữ liệu tương ứng ra 8 hàng.

thời gian tắt bằng 99/100. 4.3 Bàn phím PS/2 4. Cách 2 : mã quét gửi ra hàng và dữ liệu gửi ra cột - - Chọn hàng 1 sau đó đưa dữ liệu tương ứng ra các cột - Chọn hàng 2 sau đó đưa dữ liệu tương ứng ra các cột - Chọn hàng 3 sau đó đưa dữ liệu tương ứng ra các cột - Chọn hàng 4 sau đó đưa dữ liệu tương ứng ra các cột - Chọn hàng 5 sau đó đưa dữ liệu tương ứng ra các cột - Chọn hàng 6 sau đó đưa dữ liệu tương ứng ra các cột - Chọn hàng 7 sau đó đưa dữ liệu tương ứng ra các cột Ưu điểm : o Khi tăng thêm led => số cột tăng lên thì thời gian sáng/tắt của led vẫn khổng đổi là 1/8.1.3.Quy trình phát triển phần mềm nhúng - Nhóm 19 KHMT2 K5 Khuyết điểm : o Bị giới hạn số cột vì khi mở rộng càng nhiều cột thì thời gian tắt của led tăng thêm.1.1.1. - Khuyết điểm : o Dòng cấp cho led lớn o Do số cột tăng nên cần nhiều thời gian để đưa dữ liệu ra cột o Với bảng quảng cáo led lớn có nhiều led phải sử dụng IC có tốc độ cao để quét.1 Sơ đồ chân Hình 4.8 Cổng PS/2 Cổng PS/2 gồm có 6 chân trong đó chỉ sử dụng 4 chân : + VCC và GND cấp nguồn 5V cho bàn phím Giảng viên – Thạc sỹ : Hoàng Quang Huy 36 . Giả sử có 100 cột thì thời gian sáng của mỗi cột bằng 1/100.

2 Nguyên lý hoạt động Khi một phím bất kỳ trên bàn phím được nhấn.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 + DATA : đường dữ liệu + CLOCK : đường xung clock 4.3 Giao thức của bàn phím Có 2 chế độ giao tiếp : chế độ từ bàn phím đến thiết bị chủ và chế độ từ thiết bị chủ đến bàn phím. Bàn phím ở trạng thái nghỉ sẵn sàng để gửi dữ liệu chỉ khi cả 2 đường DATA và CLOCK đều ở mức cao. 1 bit Parity (Odd Parity) và kết thúc là bit Stop (mức 1).1. theo sau là 8 bit dữ liệu (bit LSB được truyền trước). nó gồm có 2 byte : byte đầu thường là F0. chỉ tập trung vào chế độ từ bàn phím đến thiết bị chủ.3 trình bày mã scancode của một số phím trên bàn phím. Bit đầu tiên là bit Start (mức 0). byte thứ 2 lặp lại byte mã scan code.3. Bảng 1.1. Theo sau mã scan code là mã “break code” để xác định phím đó được nhả.9 Mã scancode của bàn phím 4. Để truyền dữ liệu được chính xác thì khung truyền 11 bit được sử dụng. Giảng viên – Thạc sỹ : Hoàng Quang Huy 37 .1. mã này được gọi là “scan code”.1.3. Trong đề tài này sẽ không trình bày chế độ giao tiếp từ thiết bị chủ đến bàn phím. Hình 4. nó sẽ phát ra 1 mã hex cố định.

Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 4.10 Giản đồ thời gian truyền 1 byte từ bàn phím đến thiết bị chủ Dữ liệu được thay đổi tại cạnh lên của xung Clock và để thu được dữ liệu chính xác thì phải đọc ngay tại cạnh xuống của xung Clock.1.1.1.Khối Bàn phím : Sử dụng bàn phím để nhập chữ hoặc ký tự cần hiển thị lên led ma trận . 4.2 Chức năng các khối . 4. Giảng viên – Thạc sỹ : Hoàng Quang Huy 38 .Khối điều khiển hàng : Nhiệm vụ của khối này là đưa dữ liệu ra hàng của led ma trận và đệm dòng cho hàng để đảm bảo cấp đủ dòng cho led ma trận. Điều khiển hàng Led ma trận Vi điều khiển Bàn phím Điều khiển cột Hình 4.2. Để thu dữ liệu có thể sử dụng ngắt cạnh xuống của vi điều khiển hoặc dùng chế độ truyền thông nối tiếp đồng bộ (USART) của vi điều khiển.2 Sơ đồ khối.Khối Vi điều khiển : Dùng vi điểu khiển để xuất tín hiệu cho khối điều khiển cột và xuất dữ liệu ra khối điều khiển hàng để hiển thị được chữ hoặc ký tự lên led ma trận .2.1 Sơ đồ khối.11 Sơ đồ khối 4.

4.3.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 .1 Thiết kế các khối Dựa trên sơ đồ khối đã thiết kế.1 Mạch nguyên lý mạch vi điều khiển Giảng viên – Thạc sỹ : Hoàng Quang Huy 39 . nhóm thực hiện đề tài bắt đầu thiết kế từng khối .1. sơ đồ nguyên lý được chia làm 2 mạch : mạch vi điều khiển và mạch led ma trận.1. .3 Thiết kế 4. . phải sử dụng thêm IC ULN2803 để đệm dòng cho cột .3. 4. kết hợp sử dụng transistor npn D468 với dòng Ic=1 A đảm bảo dòng cung cấp đủ cho các hàng của led ma trận.Khối điều khiển cột : Thực hiện việc quét cột led ma trận liên tục để chữ hoặc ký tự được hiển thị.Khối bàn phím : sử dụng bàn phím máy tính chuẩn PS/2.1. 4.1.Khối led ma trận : dùng 4 led ma trận 8x8 1 màu để hiển thị chữ hoặc ký tự được nhập từ bàn phím. với đầy đủ các phím ký tự và phím số. Đồng thời cũng cần đệm dòng cho cột để đảm bảo độ sáng của led ma trận .Khối điều khiển cột : dùng IC dịch 74HC595 để quét cột của led ma trận.3. dễ dàng trong việc soạn thảo để hiển thị. Vì dòng ngõ ra của IC 74HC595 chỉ là 20mA không đủ để đệm dòng cho cột của led ma trận. Cấu tạo bàn phím thường là 101 hoặc 102 phím.Khối vi điều khiển : dùng vi điều khiển ATmega16L với 1 KB SRAM đủ dung lượng để nhận nhiều ký tự từ bàn phím.2 Sơ đồ nguyên lý Để đỡ phức tạp trong việc vẽ mạch in.Khối led ma trận : Hiển thị chữ hoặc ký tự.Khối điều khiển hàng : dùng IC ULN2803 đệm cho hàng (vì IC ULN2803 là đệm đảo nên bảng mã led ma trận sẽ bị đảo).2. .

12 Mạch nguyên lý mạch vi điều khiển Giảng viên – Thạc sỹ : Hoàng Quang Huy 40 .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 Hình 4.

1.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 4.2 Mạch nguyên lý mạch led ma trận Hình 4.2.13 Mạch nguyên lý mạch led ma trận Giảng viên – Thạc sỹ : Hoàng Quang Huy 41 .3.

3.7 Linh kiện sử dụng trong mạch Giảng viên – Thạc sỹ : Hoàng Quang Huy 42 .1.3 Linh kiện sử dụng trong mạch Số thứ Tên linh kiện tự Số lượng 1 Vi điều khiển ATmega16L 1 2 IC ULN2803 5 3 IC 74HC595 4 4 Transistor NPN D468 8 5 IC ổn áp 7805 2 6 Domino 2 2 7 Jack nguồn DC 2 8 Điện trở thanh 4k7 1 9 Điện trở 10k 9 10 Thạch anh 8 Mhz 1 11 Điện trở 1k 1 12 Điện trở 680 ohm 1 13 Led 3mm 2 14 Led ma trận 8x8 4 15 Tụ 1000uF/16V 1 16 Tụ 100uF/50V 1 17 Tụ 10uF/50V 1 18 Tụ 2.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 4.2uF/50V 1 19 Tụ 104 1 20 Tụ 22p 2 21 Cổng PS/2 1 22 Nút nhấn mềm 1 Bảng 4.

14 Mạch in mạch vi điều khiển Giảng viên – Thạc sỹ : Hoàng Quang Huy 43 .1. nhóm thực hiện đề tài tiến hành vẽ mạch in 4.4 Cài đặt và kiểm thử.4.1.1 Mạch in mạch vi điều khiển Hình 4.1 Sơ đồ mạch in Từ sơ đồ nguyên lý đã thiết kế.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 4.4. 4.1.1.

2 Mạch in mạch led ma trận Hình 4. Kế đến nhóm thực hiện đề tài gắn và hàn các linh kiện lên mạch.1.15 Mạch in mạch led ma trận 4.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 4.1. nhóm thực hiện đề tài đem sơ đồ mạch in đi in. sử dụng thêm đế IC để khi hàn không làm hỏng IC.2 Hàn và lắp linh kiện Sau khi vẽ xong mạch in. Trong quá trình gắn và hàn linh kiện nhóm thực hiện đề tài đã chú ý đến : gắn đúng chân của các transistor. gắn đúng chiều các IC lên đế. sau đó là tiến hành ủi và rửa mạch.4. Giảng viên – Thạc sỹ : Hoàng Quang Huy 44 .4.1.

và với hiểu biết tự mày mò được trong quá trình làm Bài tập lớn. thiết kế. lập trình. từ các bước như phân tích. rút ngắn thời gian phát triển và quan trọng không kém đó là khắc phục lỗi phát sinh trong quá trình cài đặt và sử dụng. chúng ta sẽ tạo ra phần mềm dễ dàng hơn. Nhóm đã tự xây dựng được ví dụ Thiết kế mạch quang báo giao tiếp bàn phím máy tính thành công. nhóm thực hiện đề tài kiểm tra mạch (kiểm tra các mối hàn xem có bị dính với nhau không. Mạch chạy đúng và đạt yêu cầu. Chỉ cần áp dụng đúng với quy trình phát triển.4. nhóm thực hiện đề tài tiến hành nạp code cho vi điều khiển và chạy thử. cấu trúc dữ liệu và giải thuật. cài đặt … hay giao tiếp với cả phần cứng.Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 4. Qua kiến thức được học từ các môn học trước như lập trình C++. thiết kế phần mềm nhúng.16 Mạch thực tế 4. Khi nhập các ký tự bất kỳ trên bàn phím sẽ hiển thị đúng các ký tự đó trên led ma trận Hình 4. Kết luận từ Ví dụ thực tế.2.1. Khi code đã hoàn thành. Giảng viên – Thạc sỹ : Hoàng Quang Huy 45 . Qua đó kiểm nghiệm được tính đúng đắn của mô hình phát triển phần mềm nhúng. kiểm tra các linh kiện có bị gắn ngược không…) và bắt đầu viết code cho mạch.3 Kết quả thi công Sau khi đã hàn và ráp linh kiện.

] Michelle Bar.] http://en. NXB Mc Graw-Hill 2003 [3.wikipedia. Giảng viên – Thạc sỹ : Hoàng Quang Huy 46 .Programing and Design. Embedded System Architecture .Quy trình phát triển phần mềm nhúng Nhóm 19 KHMT2 K5 TÀI LIỆU THAM KHẢO [1. Truy cập cuối : 1/2013.] Raj Kamal. Embedded Software . [4. Programing Embedded System in C and C++.org/wiki/Embedded_software. Trường Đại học Hàng Hải. [2. Oreilly 1999.] Giáo trình hệ thống nhúng.

Sign up to vote on this title
UsefulNot useful