Cĩ thể nĩi, các quá trình sản xuất và quản lí hiện nay như: các hệ thống đo lường điều khiển tự động trong sản xuất cơng nghiệp; các hệ thống di động và khơng dây tiên tiến, các hệ thống
Trang 1TRƯỜ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
Trang 2Chương I: TỔNG QUAN 5
1.1 Mở ñầu 5
1.2 Khái niệm về hệ nhúng 6
1.3 Vai trò của hệ thống nhúng trong sự phát triển của lĩnh vực công nghệ cao “3C “ 7
1.4 Đặc tính, phương pháp thiết kế và xu thế phát triển của các hệ nhúng 9
1.5 Môi trường thông minh 10
1.6 Các hệ ñiều hành nhúng và 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 sao cần ñặc tả 18
2.3.3 Phân loại các kỹ thuật ñặc tả 19
2.3.4 Ứng dụng và ư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 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 khiển 8051 35
3.3.2 Họ vi ñiều khiển AVR 36
3.3.3 Họ vi ñiều khiển PsoC 36
3.3.4 Họ vi ñiều khiển ARM 39
3.3.5 Họ vi ñiều khiể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 năng 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 và 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
Trang 33
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 các kênh ADC 97
4.2.7 Các hàm truy xuất vào ra 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 và 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ề các thống nhúng thông dụng 6
Hình 2: Sơ ñồ khối quy trình Top-Down 13
Hình 3: Sơ ñồ tổng quát của 1 hệ thống ñiều khiển ñộng cơ 15
Hình 4: Sơ ñồ quan hệ (call graph) giữa các module phần cứng và phân mềm trong hệ thống ñiều khiển ñộng cơ 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ả và 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 toán giải phương trình bậc 2 1
Hình 9: Kiến trúc cơ bản của 1 HTN 1
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 năng PIC16F873A 29
Hình 13: CPU 1
Hình 14: Kiến trúc bộ nhớ Von Newmann và Havard 30
Hình 15: Nguyên lý cấu tạo và 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ý ñiển hình của 1 cổng I/O 1
Hình 18: Nguyên lý kết nối 1 Master và 1 Slave sử dụng SPI 34
Hình 19: Sơ ñồ kết nối SPI 1 Master với nhiều Slaver 1
Hình 20: Cấu trúc tông quan của vi ñiều khiể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 1 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 ra số 49
Trang 4Hì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 và 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 và 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 quá trình 116
Tài liệu tham khảo
1 Bình, N T (2008) Bài giảng: Các kỹ thuật ñặc tả Đại học Bách khoa Đà nẵng
2 Công, N H (2007) Hệ thống nhúng và sự phát triển của lĩnh vực công nghệ cao "3C"
ĐH KTCN Thái Nguyên
3 John Regehr, Assist.Prof.Dr.Osman Kaan EROL (2009) Embedded System Design
4 Việt, T L (2008) HỆ THỐNG ĐIỀU KHIỂN NHÚNG Hà Nội: ĐH BKHN
5 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
Trang 55
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 và nhận diện được một hệ thống nhúng, nắm bắt được nhu cầu và vài trị quan trọng của hệ thơng nhúng trong sự phát triển của ngành cơng nghệ cao
Tĩm tắt
Giới thiệu và nêu khái niệm hệ thống nhúng Trình bày vai trị của hệ thống nhúng trong 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 và
xu hướng hội nhập tồn cầu như hiện nay, thế giới và Việt Nam đang thực hiện việc kết hợp giữa các ngành thuộc lĩnh vực cơng nghệ cao trong một Khoa hoặc cơ sở đào tạo Đĩ là lĩnh vực khoa học dưới 3 ngọn cờ: Máy tính, Điện tử- Viễn thơng và Điều khiển tự động mà ta thường gọi là “3 C” (Computer – Communication - Control) Cĩ thể nĩi, các quá trình sản xuất và quản lí hiện nay như: các hệ thống đo lường điều khiển tự động trong sản xuất cơng nghiệp; các hệ thống di động và khơng dây tiên tiến, các hệ thống thơng tin vệ tinh, các hệ thống thơng tin dựa trên Web, chính phủ điện tử, thương mại điện tử, các cơ sở dữ liệu của nhiều ngành kinh tế và của Quốc gia, các hệ thống thiết bị Y tế hiện đại, các thiết bị điện tử dân dụng, đều là sản phẩm của sự kết hợp giữa các lĩnh vực khoa học trên
Hiện nay chúng ta đ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, và sự phát triển của PC-Internet giai đoạn 1980-2000 Giai đoạn hậu PC-Internet này được dự đốn từ năm 2000 đến 2020 là giai đoạn của mơi trường thơng minh mà hệ thống nhúng là cốt lõi và đang làm nên làn sĩng đổi mới trong cơng nghệ thơng tin nĩi riêng và lĩnh vực cơng nghệ cao “3C”, nĩi chung Một thực tế khách quan là thị trường của các hệ thống nhúng lớn gấp khoảng 100 lần thị trường PC, trong khi đĩ chúng ta mới nhìn thấy bề nổi của cơng nghệ thơng tin là PC
và Internet cịn phần chìm của cơng nghệ thơng tin chiếm 99% số processor trên tồn cầu này nằm trong các hệ nhúng thì cịn ít được biết đến
Sức đẩy của cơng nghệ đưa cơng nghệ vi điện tử, cơng nghệ vi cơ điện, cơng nghệ sinh học hội tụ tạo nên các chip của cơng nghệ nano, là nền tảng cho những thay đổi cơ bản trong lĩnh vực cơng nghệ cao “3C, sức kéo của thị trường địi hỏi các thiết
bị phải cĩ nhiều chức năng thân thiện với người dùng, cĩ mức độ thơng minh ngày càng cải thiện đưa đến vai trị và tầm quan trọng của các hệ thống nhúng ngày càng cao trong nền kinh tế quốc dân
Phát triển các hệ nhúng và phần mềm nhúng là quốc sách của nhiều quốc gia trên thế giới, nhất là giai đoạn hậu PC hiện nay Ở nước ta đáng tiếc lĩnh vực này lâu
Trang 6triển ñể có thể theo kịp, rút ngắn khoảng cách tụt hậu ñối với các nước trong khu vực
và trên thế giới trong quá trình hội nhập nền kinh tế toàn cầu không thể tránh khỏi hiện nay
Ví dụ quanh ta có rất nhiều sản phẩm nhúng như lò vi sóng, nồi cơm ñiện, ñiều hòa, ñiện thoại di ñộng, ô tô, máy bay, tàu thủy, các ñầu ño, cơ cấu chấp hành thông minh v.v ta có thể thấy hiện nay hệ thống nhúng có mặt ở mọi lúc mọi nơi trong cuộc sống của chúng ta
Trang 77
Hệ ñiều khiển nhúng là hệ thống mà máy tính ñược nhúng vào vòng ñiều khiển của sản phẩm nhằm ñiều khiển một ñối tượng, ñiều khiển một quá trình công nghệ ñáp ứng các yêu cầu ñặt ra Hệ thống ñiều khiển nhúng lấy thông tin từ các cảm biến, xử lý tính toán các thuật ñiều khiển và phát tín hiệu ñiều khiển cho các cơ cấu chấp hành
Khác với các hệ thống ñiều khiể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 khiển nhúng là hệ thống ñiều khiển số ñược hình thành từ những năm 1960 ñến nay Trước ñây các hệ ñiều khiển số thường do các máy tính lớn ñảm nhiệm, ngày nay chức năng ñiều khiển số này do các chíp vi xử lý, các hệ nhúng
ñã thay thế Phần mềm ñiều khiển ngày càng tinh sảo tạo nên ñộ thông minh của thiết
bị và ngày càng chiếm tỉ trọng lớn trong giá thành của thiết bị
Điểm qua về chức năng xử lý tin ở PC và ở các thiết bị nhúng có những nét khác biệt Đối với PC và mạng internet chức năng xử lý ñang ñược phát triển mạnh ở các lĩnh vực quản lý và dịch vụ như thương mại ñiện tử, ngân hàng ñiện tử, chính phủ ñiện tử, thư viện ñiện tử, ñào tạo từ xa, báo ñiện tử các ứng dụng này thường sử dụng máy PC ñể bàn, mạng WAN, LAN hoạt ñộng trong thế giới ảo Còn ñối với các
hệ nhúng thì chức năng xử lý tính toán ñược ứng dụng cụ thể cho các thiết bị vật lý (thế giới thật) như mobile phone, quần áo thông minh, các thiết bị ñiệ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ơ cấu chấp hành thông minh, các hệ thống ñiều khiể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 trong 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 trên nhiều công nghệ khác nhau như các thiết bị máy móc tự ñộng bằng các cam chốt cơ khí, các hệ thống tự ñộng hoạt ñộng bằng nguyên lý khí nén, thủy lực, rơle cơ ñiện, mạch ñiện tử số các thiết bị, hệ thống này có chức năng xử lý và mức ñộ tự ñộng thấp so với các hệ thống tự ñộng hiện ñại ñược xây dựng trên nền tảng của các hệ thống nhúng
Trong khi các hệ thống tin học sử dụng máy tính ñể hỗ trợ và tự ñộng hóa quá trình quản lý, thì các hệ thống ñiều khiển tự ñộng dùng máy tính ñể ñiều khiển và tự ñộng hóa quá trình công nghệ Chính vì vậy các thành tựu của công nghệ phần cứng và công nghệ phần mềm của máy tính ñiện tử ñược áp dụng và phát triển một cách có chọn lọc và hiệu quả cho các hệ thống ñiều khiển tự ñộng Và sự phát triển như 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 quá trình các 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 như ñầu ño, cơ 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 các rơle, contactor, nút bấm mà trước kia hoàn toàn làm bằng
cơ khí
Trước khi ñầu ño gồm phần tử biến ñổi từ tham số ño sang tín hiệu ñiện, mạch khuyếch ñại, mạch lọc và 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 nay ñầ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 toán và truyền kết quả trên mạng số về
Trang 8do các chức năng xử lý từ máy tính trung tâm trước kia nay ñã ñược chuyển xuống xử
lý tại chỗ bằng chương trình nhúng trong ñầu ño
Tương tự như vậy cơ cấu chấp hành như môtơ ñã ñược chế tạo gắn kết hữu cơ với cả bộ servo với các thuật toán ñiều chỉnh PID tại chỗ và khả năng nối mạng số tới máy tính chủ
Các tủ rơle ñiều khiển chiếm diện tích lớn trong các phòng ñiều khiển nay ñược
co gọn trong các PLC(programble Logic Controller)
Các bàn ñiều khiển với hàng loạt các ñồng hồ chỉ báo, các phím, núm ñiều khiển, các bộ tự ghi trên giấy cồng kềnh nay ñượ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ừ các ñầu ño, cơ cấu chấp hành về trung tâm ñiều khiể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 các hệ nhúng ñã “thay thế và chiếm phần ngày càng nhiều” trong các phần tử, hệ thống thuộc lĩnh vực công nghệ cao “3C”
Vào những năm 30 các hệ thống tự ñộng bằng cam chốt cơ khí thường hoạt ñộng ñơn lẻ với một chức năng 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 năng 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 năng Vào những năm 70 các thiết bị ñiều khiển khả trình PLC ra ñời với mức ñộ xử lý lên hàng trăm và vào những năm 80 với sự tham gia của các máy tính ñiện tử main frame mini ñã hình thành các hệ thống ñiều khiển phân cấp với số chức năng 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 cũng như phần mềm, các hệ thống ñiều khiển phân tán ra ñờ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ư duy 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ư những sinh vật sống còn cần nhiều thời gian hơn và các hệ thống tự ñộng còn cần tích hợp trong nó nhiều công nghệ cao khác như công nghệ cảm biến, công nghệ vật liệu mới, công nghệ quang và laser v.v Đây cũng là xu thế phát triển của các hệ thống tự ñộng là ngày càng sử dụng nhiều công nghệ mới hơn trong cấu trúc và hoạt ñộng của mình
Trong ñiều khiển quá trình công nghệ, việc áp dụng các hệ nhúng ñã tạo ra khả năng tự ñộng hóa toàn bộ dây chuyền sản xuất Kiến trúc hệ thống ñiều khiển trước kia tập trung về xử lý tại một máy tính thì nay các ñầu ño, cơ 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 năng xử lý tại chỗ và khả năng nối mạng nhanh tạo thành hệ thống mạng máy ñiều khiển hoạt ñộng theo chế ñộ thời gian thực Ngoài các chức năng ñiều khiển và giám sát dây chuyền sản xuất hệ thống còn có nhiều cơ sở dữ liệu, khả năng tự xác ñịnh và khắc phục hỏng hóc, khả năng thống kê, báo cáo và kết hợp hệ thống mạng máy tính quản lý, lập kế hoạch, thiết
kế và kinh doanh tạo thành hệ thống tự ñộng hóa sản xuất toàn cục
Trang 99
Trong lĩnh vực rôbôt, với sự áp dụng các thành tựu của các hệ nhúng, rôbôt ñã
có thị giác và 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 trong công nghiệp sang các lĩnh vực dịch vụ và y tế Kết hợp với các thành tựu của cơ ñiện tử, rôbôt ngày càng uyển chuyển và thông minh hơn Trong tương lai rôbôt không chỉ thay thế hoạt ñộng cơ bắp của con người mà còn có thể thay thể các công việc ñòi hỏi họat ñộng trí não của con người Lúc này hệ thống ñiều khiển của rôbôt không chỉ là các vi xử lý mạnh mà còn có sự hỗ trợ của các máy tính mạng nơron nhân tạo, xử lý song song nhúng trong rôbôt Các nghiên cứu phát triển này hiện nay còn ở giai ñoạn ban ñầu
1.4 Đặc tính, phương pháp thiết kế và xu thế phát triển của các hệ nhúng
Các hệ nhúng là những hệ kết hợp phần cứng và phần mềm một cách tối ưu Các hệ nhúng là những hệ chuyên dụng, thường hoạt ñộng trong chế ñộ thời gian thực,
bị hạn chế về bộ nhớ, giá thành phải rẻ nhưng lại phải hoạt ñộng tin cậy và tiêu tốn ít năng lượng Các hệ nhúng rất ña dạng và có nhiều kích cỡ, khả năng tính toán khác nhau Ngoài ra các hệ nhúng thường phải hoạt ñộng trong môi trường khắc nghiệt có
ñộ nóng ẩm, rung xóc cao Ví dụ như các ñiều khiển các máy diesel cho tàu biển, các thiết bị cảnh báo cháy nổ trong hầm lò Các hệ thống nhúng lớn thường là các 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 soát hoạt ñộng và ñiều khiển.Trong ô tô hiện ñại có ñến trên 80 nút mạng kết nối các ñầu ño cơ cấu chấp hành ñể bảo ñảm ô tô hoạt ñộng an toàn và thoải mái cho người sử dụng
Thiết kế các hệ thống nhúng là thiết kế phần cứng và phần mềm phối hợp Cách thiết kế cổ ñiển là cách xác ñịnh trước các chức năng phần mềm (SW) và phần cứng (HW) rồi sau ñó các 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 nay ña số các 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 nay sử dụng ñồng thời nhiều công nghệ như vi xử
lý, DSP, mạng và các chuẩn phối ghép, protocol, do vậy xu thế thiết kế các hệ nhúng hiện nay ñòi hỏi có khả năng thay ñổi mềm dẻo hơn trong quá trình thiết kế 2 phần
HW và SW Để có ñược thiết kế cuối cùng tối ưu, quá trình thiết kế SW và HW phải phối hợp với nhau chặt chẽ và có thể thay ñổi sau mỗi lần thử chức năng hoạt ñộng tổng hợp Thiết kế các 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 ñiều khiển và lập trình thời gian thực
Phần mềm trong các hệ nhúng ngày càng chiếm tỉ trọng cao và ñã trở thành một thành phần cấu tạo nên thiết bị bình ñẳng như các phần cơ khí, linh kiện ñiện tử, linh kiện quang học các hệ nhúng ngày càng phức tạp hơn ñáp ứng các yêu cầu khắt khe
về thời gian thực, tiêu ít năng lượng, hoạt ñộng tin cậy ổn ñịnh hơn, có khả năng hội thoại cao, có khả năng kết nối mạng, có thích nghi, tự tổ chức cao có khả năng tái cấu hình như một thực thể, một tác nhân
Và có khả năng tiếp nhận năng lượng từ nhiều nguồn khác nhau (ánh sáng, rung ñộng, ñiện từ trường, sinh học .) ñể tạo nên các hệ thống tự tiếp nhận năng lượng trong quá trình họat ñộng
Trang 10tạp của hệ thống tăng cao do nó kết hợp nhiều lĩnh vực ña ngành, kết hợp phần cứng - mềm, trong khi các phương pháp thiết kế và kiểm tra chưa chín muồi Khoảng cách giữa lý thuyết và thực hành lớn và còn thiếu các phương pháp và lý thuyết hoàn chỉnh cho khảo sát phân tích toàn cục của hệ nhúng bao gồm lý thuyết ñiều khiển tự ñộng, thiết kế máy, công nghệ phần mềm, ñiện tử, vi xử lý, các công nghệ hỗ trợ khác Mặt khác các hệ nhúng còn nhiều vấn ñề cần giải quyết với ñộ tin cậy và 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 khi 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 quá trình hoạt ñộng một số phần mềm thường phải chỉnh lại và thay ñổi nên hệ thống phần mềm có thể không kiểm soát ñược Đối với hệ thống mở, các hãng thứ 3 ñưa các module mới, thành phần mới vào cũng 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 càng rẻ, tích hợp cao, có khả năng tính toán lớn, khả năng kết nối toàn cầu, khả năng phối hợp với các cảm biến
và cơ cấu chấp hành vi cơ ñiện và sinh học, khả năng giao diện không qua bàn phím ñang tạo tiền ñề và cơ sở cho sự bùng nổ của các thiết bị vật dụng thông minh xung quanh ta Đây là 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 trong các chip vi hệ htống rất phong phú và 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 ñiện tử tiếp cận và cộng nă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 2010-
2020 Các chip vi hệ thống xử lý hỗn hợp tương tự và số MS-SoC (Mixed Signal System on chip) vào giai ñoạn này sẽ có trên 2 tỷ transistor, 1000 lõi CPU, 100MB bộ nhớ và hoạt ñộng ở tần số 200GHz
Với những vi hệ thống có khả năng tính toán siêu hạng này việc thiết kế các hệ nhúng sẽ gặp không ít thách thức như xử lý song song, ñộ phức tạp của phần mềm nhúng và khả năng cung cấp năng lượng cho các thiết bị cầm tay Trong tương lai năng lượng cho truyền dữ liệu sẽ lớn gấp từ 5 ñến 30 lần năng lượng hoạt ñộng của các CPU
Trước ñây các hệ thống thường ñược thiết kế trên nền phần cứng là PC và phần mềm là Windown hoặc Linux, thì ngày nay số lượng các hệ nền (platform) cho thiết kế các hệ nhúng có khoảng 25 Trong tương lai các hệ nhúng sẽ ñược thiết kế trên nền các chip MS-SoC tạo nên các platform thiết kế chuyên dụng với số lượng sẽ lên ñến hơn
500 loại Ta có thể liệt kê một số ví dụ ñiển hình như platform raptor II cho thiết kế camera số, PXA240 cho thiết kế các thiết bị PDA, TL850 cho TV số, BLUECORE cho công nghệ không dây Bluetooth, CDMA cho mobile phone 3G các hệ MS-SoC
sẽ có khả năng tái cấu hình và sẽ là công cụ chủ chốt cho các sản phẩm của công nghệ cao “3C”
Trang 112001 hệ ñiều hành này chiếm 12% thị phần các hệ ñiều hành nhúng thì năm 2002 chiếm 27% và chiếm vị trí số 1 Hiện nay 40% các nhà thiết kế các hệ nhúng cân nhắc ñầu tiên sử dụng Embedded linux cho các ứng dụng mới của mình và sau ñó mới ñến các hệ ñiều hành nhúng truyền thống như VxWorks, WinCE Các ñối thủ cạnh tranh của Embedded linux hiện nay là các hệ ñiều hành nhúng tự tạo và windows CE Sở dĩ Embedded linux có sự phát triển vượt bậc là do có sức hấp dẫn ñối với các ứng dụng giá thành thấp và ñòi hỏi thời gian ñưa sản phẩm ra thị trường nhanh Mặt khác Linux
là phần mềm mã nguồn mở nên bất kỳ ai cũng có thể hiểu và thay ñổi theo ý mình Linux cũng là một hệ ñiều hành có cấu trúc module và chiếm ít bộ nhớ trong khi windows không có các ñặc tính ưu việt này Do thị trường của các sản phẩm nhúng tăng mạnh lên các nhà sản xuất ngày càng sử dụng các hệ ñiều hành nhúng ñể ñảm bảo sản phẩm có sức cạnh tranh và Embedded linux ñang là sản phẩm hệ ñiều hành nhúng
có uy tín chiếm vị trí số 1 trong những năm tới
1.6.2 Phần mềm nhúng
Phần mềm nhúng là phần mềm tạo nên phần hồn, phần trí tuệ của các sản phẩm nhúng Phần mềm nhúng ngày càng có tỉ lệ cao trong giá trị của các sản phẩm nhúng Hiện nay phần lớn các phần mềm nhúng nằm trong các sản phẩm truyền thông và các sản phẩm ñiện tử gia dụng (consumer electronics) tiếp ñến là trong các sản phẩm ô tô, phương tiện vận chuyển, máy móc thiết bị y tế, các thiết bị năng lượng các thiết bị cảnh báo bảo vệ và các sản phẩm ño và ñiều khiển Để có thể tồn tại và phát triển, các sản phẩm công nghiệp và tiêu dùng cần phải thường xuyên ñổi mới và ngày càng có nhiều chức năng tiện dụng và thông minh hơn Các chức năng này phần lớn do các chương trình nhúng tạo nên Phần mềm nhúng là một lĩnh vực công nghệ then chốt cho sự phát triển kinh tế của nhiều quốc gia trên thế giới như Nhật Bản, Hàn Quốc, Phần Lan và Trung Quốc Tại Mỹ có nhiều chương trình hỗ trợ của nhà nước ñể phát triển các hệ thống và phần mềm nhúng Hàn Quốc có những dự án lớn nhằm phát triển công nghệ phần mềm nhúng như các thiết bị gia dụng nối mạng Internet, hệ thống phần mềm nhúng cho phát triển thành phố thông minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trung tâm hỗ trợ các ngành công nghiệp hậu PC v.v Hàn Quốc cũng chấp nhận Embedded linux như một hệ ñiều hành chủ chốt trong việc phát triển các sản phẩm nhúng của mình Thụy Điển coi phát triển các hệ nhúng có tầm quan trọng chiến lược cho sự phát triển của ñất nước Phần Lan có những chính sách quốc gia tích cực cho nghiên cứu phát triển các hệ nhúng ñặc biệt là các phần mềm nhúng Những quốc gia này còn thành lập nhiều viện nghiên cứu và trung tâm phát triển các hệ nhúng
Trang 12Mục tiêu của chương
Giúp sinh viên biết ñược quy trình triên khai một hệ thống nhúng từ lúc có ý tưởng ñến khi hoàn thiện sản phẩm, từ ñó có thể chủ ñộng triên khai 1 bài toán cụ thể theo ñúng phương pháp
Tóm tắt
Trình bày các quy trình thiết kế một hệ thống nhúng và các kỹ thuật ñặc tả hệ thống
2.1 Quy trình thiết kế Top-Down
Quy trình Top-Down thường ñược áp dụng cho các bài toán ñã có giải pháp công nghệ cả về phần mềm cũng như phần cứng Các giải pháp này ñã ñược phát triển trước ñó ở các ứng dụng khác, và ñã ñược kiểm ñịnh
Trong thực tế chúng ta sẽ thấy, bản chất hay mấu chốt của quy trình là vấn ñề tìm hiểu và xác ñịnh bài toán, làm sao ñể xác ñịnh ñược chính xác và ñầy ñủ nhất các yêu cầu cũng các rằng buộc mà hệ thống phải ñạt ñược
Sơ ñồ khối quy trình kế top-down ở hình 2
2.1.1 Pha phân tích
Pha này là pha quan trọng nhất quyết ñịnh hệ thống có ñạt yêu cầu hay không Một hệ thống nhúng cụ thể phải ñược ñặt vào (nhúng vào) một hệ thống lớn cụ thể Vì thế ta cần phải biết có những yêu cầu nào cho nó, môi trường hay ñiều kiện làm việc của nó Thông tin này gọi là các yêu cầu và các ñiều kiện rằng buộc cho hệ thống, nó giúp cụ thể hoá ñược việc chọn giải pháp công nghệ và thiết bị cho các kỹ sư thiết kế ở pha sau
- Các yêu cầu: Các thông tin chi tiết về nhiệm vụ mà hệ thống phải giải quyết ñược, các tham số ñầu vào ñầu ra, các giới hạn trong hệ thống cụ thể,
- Các rằng buộc: Điều kiện làm việc và các hạn chế như thời tiết, ñộ ẩm, ñộ nhiễu, ñộ chính xác, tính thời gian thực, loại tín hiệu giao tiếp với hệ thống mẹ,
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,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
Trang 1313
Hình 2: Sơ ñồ khối quy trình Top-Down
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
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
2) Nơi ñặt cửa có nhiều người qua lại, nên hệ thống sẽ phải làm việc với tần suất cao
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
7)
Phân tích vấn ñề (Analyze the proplem)
Thiết kế nguyên lý (High level design)
Thiết kế kỹ thuật (Engineering design)
Kiểm tra (Test)
Xây dựng hệ thống (Implementation)
Các yêu cầu và ñiều kiện rằng buộc cho hệ thống mới
Các yêu cầu và các ñiều kiện rằng buộc
ñã ñược xác ñịnh cụ thể
Sơ ñồ khối và các biểu ñồ luồng dữ liệu
- Các cấu trúc dữ liệu
- Các giao tiếp vào ra
- Biểu ñồ quan hệ giữa các khối chức năng
Trang 14các yêu cầu khác nhau 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ư:
2.1.2 Pha thiết kế nguyên lý
Mục tiêu của pha này là xác ñịnh các giải pháp công nghệ từ các yêu cầu ñặt ra
ở pha Phân tích, từ ñó ñi thiết kế mô hình, sơ ñồ nguyên lý cho toàn bộ hệ thống bao gồm cả phần cứng và phần mềm
Để thực hiện bước này thông thường trải qua các bước sau:
- Trước tiên ta phải xây dựng một sơ ñồ mô hình tổng quát của toàn hệ thống
- Sau ñó phân tách thành các module hay các hệ thống con
triển hệ thống
- Xây dựng các sơ ñồ luồng dữu liệu giữa các module hay các hệ thống con trong hệ thống
Trang 1515
Ví dụ 2: Xây dựng và phân tách các module trong mô hình tổng quát của bài toán
ñ iều khiển ñộng cơ
Hình 3: Sơ ñồ tổng quát của 1 hệ thống ñiều khiển ñộng cơ
2.1.3 Pha thiết kế kỹ thuật
• Xây dựng các thiết kế chi tiết cho cả phần cứng phần mềm, 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 Vì thế ở pha này người thiết
kế phải ñưa ra các bản thiết kế như:
1 Sơ ñồ khối, sơ ñồ thuật toán
2 Cấu trúc dữu liệu, dữ liệu chia sẻ
3 Sơ ñồ nguyên lý mạch, chi tiết về các ñầu vào/ra, loại tín hiệu hay giao thức giao tiếp
4 Thông số linh kiện ñược chọn hoặc có thể thay thế
5 Các tham số vào/ra cho hệ thống
6 Lựa chọn thiết bị, công cụ phát triển hệ thống, các tài nguyên sẽ sử dụng
7
• Xây dựng sơ ñồ quan hệ giữa các module và các hàm trong hệ thống (call graph),
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
Trang 16Ví dụ: Sơ ñồ Call graph của hệ thống ñiều khiển ñộng cơ
Hình 4: Sơ ñồ quan hệ (call graph) giữa các module phần cứng và 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, 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ể, 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, ñồng thời thử nghiệm tính thân thiện của giao diện người dùng
Việc phát triển hệ thống có thể ñược phân tách thành nhiều nhóm, nhiều phần không cần tuân theo tuần tự, 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 ñủ Nếu chúng ta phân tách và thiết kế tốt, việc phát triển hệ thống có thể ñược tiến hành song song, hoặc kế thừa cái có sẵn, 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
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 Tuy nhiên trong một bài toán
cụ thể việc Debug là rất khó, 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
2.1.5 Pha kiểm tra
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, thông thường ta thực hiện các bước sau:
Trang 17Cá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, 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
2.2 Quy trình Bottom-Up
Quy trình Bottom-Up trong thực tế thường áp dụng trong các bài toán chưa lựa chọn hay chưa tìm ra ñược giải pháp công nghệ Mấu chốt của quy trình tập trung chủ yêu và quá trình thử nghiệm với hệ thống và tín hiệu thực, từ ñó chọn ra giải pháp công nghệ và linh kiện phù hợp nhất cho bài toán Sơ ñồ tổng quát của quy trình như hình 5
Quy trình Bottom-Up bắt ñầu từ các ý tưởng ñơn lẻ, sau ñó xây dựng luôn thiết
kế kỹ thuật Như ta thấy quy trình hoàn toàn ngược so với Top-Down Quy trình này thường áp dụng có các bài toán chưa lắm chắc về lời giải, người thiết kế mới chỉ có ý tưởng về một vấn ñề nào ñó và muốn tìm một giải pháp hoặc giải pháp tốt nhất ñể giải quyết vấn ñề Việc giải quyết các ý tưởng có thể 1 hoặc nhiều ñể có một sản phẩm hoàn chỉnh Ở quy trình này ta cần chú ý có 2 khâu test nhằm kiểm ñịnh chính xác lại các thiết kế kỹ thuật và thiết kế nguyên lý trước khi lựa chọn 1 giải pháp tối ứu nhất
Chính từ việc thí nghiệm và thiết kế thử hệ thống trước, sau ñó mới có thể phân tích nguyên lý ñể chọn các ñặc tính mới, rằng buộc mới cho một hệ thống mới Với quy trình này khâu thiết kế kỹ thuật và Test sau khi xây dựng hệ thống là quan trọng nhất Vì với Top-Down việc xây dựng một sản phẩm là theo nhu cầu của người dùng
và môi trường ñặt hệ thống Còn với Bottom-Up có thể người ta còn chưa tìm ra cách
ñể thiết kế ra sản phẩm ñó, hoặc sản phẩm ñó chưa hề có trên thị trường, khi ñó cả người dùng và người thiết kế chưa thể có thông tin gì về các yêu cầu cho sản phẩm hay các ñặt tính kỹ thuật của sản phẩm, vì vậy khâu thiết kế kỹ thuật và Test sau thực thi các kỹ sư phải tìm ra các ñặt tính ñó, nhằm xác ñịnh ñược các ưu việt cũng như các hạn chế của sản phẩm mới
2.3 Đặc tả hệ thống
2.3.1 Khái niệm ñặc tả (specification)
Kỹ thuật ñặc tả nhằm ñịnh nghĩa một hệ thống, module hay sản phẩm cần phải làm gì, nhưng không mô tả nó phải làm thế nào Nghĩa là ñặc tả chỉ tập trung vào việc
Trang 18như thế nào thì không mô tả Đồng thời nêu nên các tính chất của vấn ñề ñặt ra
Như vậy bản chất ta sử dụng một công cụ ñể mô hình hoá một hệ thống thành các module, các luồng dữ liệu vào ra, các yêu cầu của tín hiệu hay dữ liệu, các thông tin trao ñổi giữa các module, Sao cho toàn bộ quy trình làm việc của hệ thống có thể ñọc ñược thông qua ñặc tả Ở ñây ta không quan tâm ñến công nghệ của hệ thống, mà chỉ quan tâm ñến chức năng, nhiệm vụ và các tính chất mà hệ thống phải có ñược Đặc tả có thể ñược tiến hành ở nhiều giai ñoạn, nhiều lần trong tiến trình phát triển
hệ thống như:
những thống nhất giữa người sử dụng tương lai và người thiết kế về hệ thống Đây là các thông tin cơ sở ñể người thiết kế thiết hệ thống của mình, nhiệm vụ người thiết kế pahỉ thiết kế ñầy ñủ và hoàn thiện theo yêu cầu ñã thống nhất, người sử dụng tương lại ñược phép ñỏi hỏi, giám sát việc thực thi các yêu cầu trong phạm vi ñã thoả thuận
nhất giữa người thiết kế và người cài ñặt Các ñặt tả nhằm chỉ ra ñược các chức năng, tính chất và nhiệm vụ cho các thành phần hệ thống chuẩn bị ñược cài ñặt Việc xác ñịnh các yêu cầu từ ñó chuyển thành bản thiết kế ñã ñược ñặc tả ởkhâu ñặc tả yêu cầu, vì thế khâu này người cài ñặt chỉ quan tầm ñến bản thiết kế và những rằng buộc ñã thống nhất với người thiết kế
cài ñặt module và người lập trình sử dụng module Quá trình cài ñặt hệ thống có thể ñược phân ra thành nhiều module ñược cài ñặt một cách song song, hay kế thừa từ module có sẵn hay module ñặt hàng, vì thế người cài ñặt và người sử dụng module cần ñặc tả chi tiết các chức năng, nhiệm vụ và ñặc biệt các giao tiếp của hàm, ñể sao cho có thể ghép nối tương thích và hiệu quả module ñó vào
hệ thống
2.3.2 Tại sao cần ñặc tả
Việc ñặc tả là rất cần thiết trước khi xây dựng một hệ thống bất kỳ trong lĩnh vực nào bời vì:
Trang 1919
Hình 5: Sơ ñồ khối quy trình Bottom-Up
sử dụng và người phát triển, chính vì thế ñây là cơ pháp lý và khoa học ñể người phát triển thiết kế, còn người sử dụng thì giám sát và kiểm ñịnh
• Giúp sản phẩm hợp thức hoá: Sản phẩm ñược phát triển theo các yêu cầu ñã thoả thuận, vì thế sản phẩm ñương nhiên sẽ ñặt yêu cầu với người sử dụng
chung và thống nhất vì thế các ñặc tả có thể ñược trao ñổi giữa các người thiết
kế với nhau Đồng thời thông qua ñó người sử dụng cũng có thể có cái nhìn tổng quát về sản phẩm
• Tái sử dụng: Một ñặc tả có thể ñược lưu giữ ñể phát triển tiếp hoặc ñược bổ sung nâng cấp về sau
2.3.3 Phân loại các kỹ thuật ñặc tả
Phân tích vấn ñề (Analyze)
Thiết kế nguyên lý (High level design)
Ý tưởng
Không Đạt
yêu cầu
Kiểm tra (Test)
Đạt yêu cầu
Không Đạt yêu cầu
Kiểm tra
(Test)
Kiểm tra (Test)
Kiểm tra (Test)
Xây dựng hệ thống (Implementation)
Xây dựng hệ thống (Implementation)
Thiết kế kỹ thuật
(Engineering design)
Không Đạt yêu cầu
Không Đạt yêu cầu
Ý tưởng
Ý tưởng
Trang 20o Ngôn ngữ tự nhiên có cấu trúc
o Các ký hiệu ñồ họa
học và các ký hiệu ñồ họa
ký hiệu toán học là các ký hiệu thống nhất chung có thể là:
• Sử dụng là công cụ trao ñổi giữa
các người thiết kế, tuy nhiên vì sử
dụng các ký hiệu toán học chuyên
ngành nên khó ñọc và khó hiểu
• Chỉ dành cho những người có kiến
thức chuyên môn nên khó sử dụng
• Phương pháp sử dụng ngôn ngữ tự nhiên, tự do và bản ñịa nên dễ hiểu,
dễ sử dụng
• Khả năng mềm dẻo cao, vì công cụ
mô tả là ngôn ngữ dễ thay thế
• Thiếu sự chính xác và ñầy ñủ do hạn chế của ngôn ngữ và mang tính chủ quan
• Nhập nhằng
2.3.4 Ứng dụng và ưu việt khỉ sử dụng ñặc tả
• Nhằm hạn chế lỗi trong quá trình phát triển phần mềm, thông qua việc ñặc tả chi tiết và ñầy ñủ các chức năng, nhiệm vụ và tính chất cho tất cả các thành phần của sản phẩm
• Kỹ thuật ñặc tả thường dùng khi phát triển các hệ thống
o Hệ thống ñiều khiển
o Hệ thống nhúng
o Hệ thống thời gian thực
Ưu ñiểm khi sử dụng ñặc tả ñược thể hiện rõ nhất qua qua chi phí phát triển hệ thống, ta có thể thấy rõ qua biểu ñồ sau:
Trang 2121
Hình 6: Biểu ñồ so sánh chi phí phát triẻn hệ thống sử dụng dặc tả và không sử dụng
Qua biểu ñồ ta dễ dành nhận ra tổng chi phí khi sử dụng ñặc tả giảm ñi rất nhiều, ñiều nay sẽ là cho giá thành sản phẩm ñạt ñược tính cạnh tranh
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)”
Trong thực tế có một số phương pháp ñặc tả như:
• Máy trạng thái hữu hạn
• Mạng Petri (thường dùng ñể mô tả các hệ thống phức tạp không ñồng bộ, có nhiều khâu làm việc song song)
• Kiểu trừu tượng (mô tả dữ liệu và các thao tác trên dữ liệu ñó ở một mức trừu tượng ñộc lập với cách cài ñặt dữ liệu bởi ngôn ngữ lập trình)
Trong phạp vi này bài giảng chỉ tập trung trình bày về kỹ thuật ñặc tả sử dụng máy trạng thái hữu hạn, do tính ñơn giản và phù hời với các hệ thống nhỏ có tính moudle và tuần tự cao
Phương pháp máy trạng thái hữu hạn:
• Phương pháp mô tả các luông ñiều khiển trong hệ thống
• Biểu diễn hệ thống dưới dạng ñồ thị
o Nút: mỗi nút là một trạng thái S của hệ thống
o Nhãn: Mô tả dữ liệu ñầu vào, là nhãn của một cung
o Cung: Một chuyển tiếp T : S x I -> S (chuyển tiếp mô tả một sự biến ñổi trạng thái khi một trạng có dữ liệu vào)
Ví dụ 1:
Trang 22Hì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
2.4 Các phương pháp biểu diễn thuật toán
Khi chứng minh hoặc giải một bài toán trong toán học, ta thường dùng những ngôn từ toán học như : "ta có", "ñiều phải chứng minh", "giả thuyết", và sử dụng những phép suy luận toán học như phép suy ra, tương ñương, .Thuật toán là một phương pháp thể hiện lời giải bài toán nên cũng phải tuân theo một số quy tắc nhất ñịnh Ðể có thể truyền ñạt thuật toán cho người khác hay chuyển thuật toán thành chương trình máy tính, ta phải có phương pháp biểu diễn thuật toán Có 3 phương pháp biểu diễn thuật toán :
Ví dụ: Biểu diễn thuật toán giải phương trình bậc hai dùng ngôn ngữ tự nhiên (không xét ñến nghiệm phức)
Trang 23Bước 3: Kiểm tra ∆
3.1 Nếu ∆>0 ñến bước 4 3.2 Nếu ∆=0 ñến bước 5 3.3 Nếu ∆<0 báo phương trình vô nghiệm, kết thúc thuật toán Bước 4: Báo phương trình có 2 nghiệm , kết thúc thuật toán
Bước 5: Phương trình có nghiệm kép x1=x2=-b/2a, kết thúc thuật toán
2.4.2 Dùng lưu ñồ
Lưu ñồ hay sơ ñồ khối là một công cụ trực quan ñể diễn ñạt các thuật toán Biểu diễn thuật toán bằng lưu ñồ sẽ giúp người ñọc theo dõi ñược sự phân cấp các trường hợp và quá trình xử lý của thuật toán Phương pháp lưu ñồ thường ñược dùng trong những thuật toán có tính rắc rối, khó theo dõi ñược quá trình xử lý
Ðể biểu diễn thuật toán theo sơ ñồ khối, ta phải phân biệt hai loại thao tác Một thao tác là thao tác chọn lựa dựa theo một ñiều kiện nào ñó Chẳng hạn : thao tác "nếu
a = b thì thực hiện thao tác B2, ngược lại thực hiện B4" là thao tác chọn lựa Các thao tác còn lại không thuộc loại chọn lựa ñược xếp vào loại hành ñộng Chẳng hạn, "Chọn một hộp bất kỳ và ñể lên ñĩa cân còn trống." là một thao tác thuộc loại hành ñộng
a) Thao tác chọn lựa (hay còn gọi khối ñiều kiện)
Thao tác chọn lựa ñược biểu diễn bằng một hình thoi, bên trong chứa biểu thức ñiều kiện
b) Thao tác xử lý (process)
Thao tác xử lý ñược biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung
xử lý
c) Ðường ñi (route)
Khi dùng ngôn ngữ tự nhiên, ta mặc ñịnh hiểu rằng quá trình thực hiện sẽ lần lượt ñi từ bước trước ñến bước sau (trừ khi có yêu cầu nhảy sang bước khác) Trong ngôn ngữ lưu ñồ, do thể hiện các bước bằng hình vẽ và có thể ñặt các hình vẽ này ở vị trí bất kỳ nên ta phải có phương pháp ñể thể hiện trình tự thực hiện các thao tác
Trang 24hướng thực hiện Chẳng hạn trong hình dưới, trình tự thực hiện sẽ là B1, B2, B3
Từ thao tác chọn lựa có thể có ñến hai hướng ñi, một hướng ứng với ñiều kiện thỏa và một hướng ứng với ñiều kiện không thỏa Do vậy, ta dùng hai cung xuất phát
từ các ñỉnh hình thoi, trên mỗi cung có ký hiệu Ð/Ðúng/Y/Yes ñể chỉ hướng ñi ứng với ñiều kiện thỏa và ký hiệu S/Sai/N/No ñể chỉ hướng ñi ứng với ñiều kiện không thỏa
Trang 2525
d) Ðiểm cuối (terminator)
Ðiểm cuối là ñiểm khởi ñầu và kết thúc của thuật toán, ñược biểu diễn bằng hình ovan, bên trong có ghi chữ bắt
ñầu/start/begin hoặc kết thúc/end Ðiểm
cuối chỉ có cung ñi ra (ñiểm khởi ñầu)
hoặc cung ñi vào (ñiểm kết thúc) Xem
lưu ñồ thuật toán giải phương trình bậc
hai ở trên ñể thấy cách sử dụng của ñiểm
cuối
e) Ðiểm nối (connector)
Ðiểm nối ñược dùng ñể nối các
phần khác nhau của một lưu ñồ lại với
nhau Bên trong ñiểm nối, ta ñặt một ký
hiệu ñể biết sự liên hệ giữa các ñiểm nối
f) Ðiểm nối sang trang (off-page connector)
Hình 8: Lưu ñồ biểu diễn thuật toán giải phương trình bậc 2
Trang 26lớn, phải vẽ trên nhiều trang Bên trong ñiểm nối sang trang ta cũng ñặt một ký hiệu ñể biết ñược sự liên hệ giữa ñiểm nối của các trang chaof
Ở trên chỉ là các ký hiệu cơ bản và thường ñược dùng nhất Trong thực tế, lưu
ñồ còn có nhiều ký hiệu khác nhưng thường chỉ dùng trong những lưu ñồ lớn và phức tạp Ðối với các thuật toán trong cuốn sách này, ta chỉ cần sử dụng các ký hiệu trên là
ñủ
2.4.3 Mã giả
Tuy sơ ñồ khối thể hiện rõ quá trình xử lý và sự phân cấp các trường hợp của thuật toán nhưng lại cồng kềnh Ðể mô tả một thuật toán nhỏ ta phải dùng một không gian rất lớn Hơn nữa, lưu ñồ chỉ phân biệt hai thao tác là rẽ nhánh (chọn lựa có ñiều kiện) và xử lý mà trong thực tế, các thuật toán còn có thêm các thao tác lặp
Khi thể hiện thuật toán bằng mã giả, ta sẽ vay mượn các cú pháp của một ngôn ngữ lập trình nào ñó ñể thể hiện thuật toán Tất nhiên, mọi ngôn ngữ lập trình ñều có những thao tác cơ bản là xử lý, rẽ nhánh và lặp Dùng mã giả vừa tận dụng ñược các khái niệm trong ngôn ngữ lập trình, vừa giúp người cài ñặt dễ dàng nắm bắt nội dung thuật toán Tất nhiên là trong mã giả ta vẫn dùng một phần ngôn ngữ tự nhiên Một khi
ñã vay mượn cú pháp và khái niệm của ngôn ngữ lập trình thì chắc chắn mã giả sẽ bị phụ thuộc vào ngôn ngữ lập trình ñó
Ví dụ: Một ñoạn mã giả của thuật toán giải phương trình bậc hai
if Delta > 0 then
begin
x1=(-b-sqrt(delta))/(2*a) x2=(-b+sqrt(delta))/(2*a) xuất kết quả : phương trình có hai nghiệm là x1 và x2 end
else
if delta = 0 then
xuất kết quả : phương trình có nghiệm kép là -b/(2*a) else {trường hợp delta < 0 }xuất kết quả : phương trình vô nghiệm
Trang 27Kiến trúc cơ bản của hệ thống nhúng ñược
miêu tả ở hình 8, như vậy một hệ thống ñầy ñủ về
tách biệt trên 2 công nghệ không cần liên
quan ñến nhau nhưng vẫn có thể kết hợp ñể có một sản phẩm tốt nhất Cũng như máy tính hệ ñiều hành giúp người khác thác hệ thống ñược hiệu quả và dễ dàng hơn, hệ thống nhúng có hệ ñiều hành thường linh hoạt và mềm dẻo hơn
3 Phần cứng: Đây là thành phần cốt lõi không thể thiếu, thành phần phần cứng quan trọng nhất là CPU, các thành phần khác có thể tùy biến theo từng ứng dụng cụ thể
3.1.2 Cấu trúc phần cứng
Cấu trúc tổng quát thông dụng nhất của một vi xử lý/vi ñiều khiển nhúng ñược ñưa ra
ở hình 10
Hình 10: Cấu trúc thông dụng của một VXL/VĐK nhúng
Hình 9: Kiến trúc cơ bản của 1 HTN
Trang 28biến hiện này Chúng ñược ra ñời và sử dụng theo sự phát triển của các Chip xử lý ứng dụng cho máy tính Vì ñối tượng ứng dụng là các thiết bị nhúng nên cấu trúc cũng ñược thay ñổi theo ñể ñáp ứng các ứng dụng Hiện nay chúng ta có thể thấy các họ vi
xử lý ñiều khiển của rất nhiều các nhà chế tạo cung cấp như, Intel, Atmel, Motorola, Infineon Về cấu trúc, chúng cũng tương tự như các Chíp xử lý phát triển cho PC nhưng ở mức ñộ ñơn giản hơn nhiều về công năng và tài nguyên Phổ biến vẫn là các Chip có ñộ rộng bus dữ liệu là 8bit, 16bit, 32bit Về bản chất cấu trúc, Chip vi ñiều khiển là chip vi xử lý ñược tích hợp thêm các ngoại vi Các ngoại vi thường là các khối chức năng ngoại vi thông dụng như bộ ñịnh thời gian, bộ ñếm, bộ chuyển ñổi A/D, giao diện song song, nối tiếp…Mức ñộ tích hợp ngoại vi cũng khác nhau tuỳ thuộc vào mục ñích ứng dụng sẽ có thể tìm ñược Chip phù hợp Thực tế với các ứng dụng yêu cầu ñộ tích hợp cao thì sẽ sử dụng giải pháp tích hợp trên chip, nếu không thì hầu hết các Chip ñều cung cấp giải pháp ñể mở rộng ngoại vi ñáp ứng cho một số lượng ứng dụng rộng và mềm dẻo
Hình 11: Ví dụ về kiến trúc của họ VĐK AVR
Trang 29của CPU ñảm nhiệm chức năng này là ñơn vị logic toán
học ALU (Arthimetic Logic Unit) Ngoài ra ñể hỗ trợ
hoạt ñộng của ALU còn có thêm một số thành phần khác
trong CPU như bộ giải mã, bộ tuần tự và các thanh ghi
Hình 13: CPU
Trang 30b) Bộ nhớ
Kiển trúc bộ nhớ
Kiến trúc bộ nhớ ñược chia ra làm hai loại chính và ñược áp dụng rộng rãi trong hầu hết các Chip xử lý nhúng hiện nay là kiến trúc bộ nhớ von Neumann và Havard Trong kiến trúc von Neumann không phân biệt vùng chứa dữ liệu và mã chương trình.Cả chương trình và dữ liệu ñều ñược truy nhập theo cùng một ñường Điều này cho phép ñưa dữ liệu vào vùng mã chương trình ROM, và cũng có thể lưu mã chương trình vào vùng dữ liệu RAM và thực hiện từ ñó
Hình 14: Kiến trúc bộ nhớ Von Newmann và Havard
Kiến trúc Havard tách/phân biệt vùng lưu mã chương trình và dữ liệu Mã chương trình chỉ có thể ñược lưu và thực hiện trong vùng chứa ROM và dữ liệu cũng chỉ có thể lưu và trao ñổi trong vùng RAM Hầu hết các vi xử lý nhúng ngày nay sử dụng kiến trúc bộ nhớ Havard hoặc kiến trúc Havard mở rộng (tức là bộ nhớ chương trình và dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn chế ñể lấy dữ liệu ra từ vùng mã chương trình) Trong kiến trúc bộ nhớ Havard mở rộng thường sử dụng một
số lượng nhỏ các con trỏ ñể lấy dữ liệu từ vùng mã chương trình theo cách nhúng vào trong các lệnh tức thời Một số Chip vi ñiều khiển nhúng tiêu biểu hiện nay sử dụng cấu trúc Havard là 8031, PIC, Atmel AVR90S Nếu sử dụng Chip 8031 chúng ta sẽ nhận thấy ñiều này thông qua việc truy nhập lấy dữ liệu ra từ vùng dữ liệu RAM hoặc
từ vùng mã chương trình Chúng ta có một vài con trỏ ñược sử dụng ñể lấy dữ liệu ra
từ bộ nhớ dữ liệu RAM, nhưng chỉ có duy nhất một con trỏ DPTR có thể ñược sử dụng
ñể lấy dữ liệu ra từ vùng mã chương trình Hình 13 mô tả nguyên lý kiến trúc của bộ nhớ von Neumann và Harvard
Ưu ñiểm nổi bật của cấu trúc bộ nhớ Harvard so với kiến trúc von Neumann là
có hai kênh tách biệt ñể truy nhập vào vùng bộ nhớ mã chương trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có thể ñược truy nhập ñồng thời và làm tăng tốc ñộ luồng trao ñổi với bộ xử lý
Bộ nhớ chương trình – PROM (Programmable Read Only Memory)
Vùng ñể lưu mã chương trình Có ba loại bộ nhớ PROM thông dụng ñược sử dụng cho hệ nhúng và sẽ ñược giới thiệu lần lượt sau ñây
Trang 31Cũng giống như EPROM ñược cấu tạo bởi một mảng transistor khả trình nhưng
có thể xoá ñược bằng ñiện và chính vì vậy có thể nạp lại chương trình mà không cần tách ra khỏi nền phần cứng VXL Ưu ñiểm của bộ nhớ flash là có thể lập trình trực tiếp trên mạch cứng mà nó ñang thực thi trên ñó
Bộ nhớ dữ liệu - RAM
Vùng ñể lưu hoặc trao ñổi dữ liệu trung gian trong quá trình thực hiện chương trình Có hai loại RAM ñược sử dụng trong thực tế là SRAM(static RAM) và DRAM(dynamic RAM)
Trang 32Hình 16: Cấu trúc nguyên lý bộ nhớ RAM c) Giao tiếp ngoại vi
Giao diện song song 8bit/16bit
Các cổng song song là một dạng giao
diện vào ra ñơn giản và phổ biến nhất ñể kết
nối thông tin với ngoại vi Có nhiều loại cấu
trúc giao diện vật lý ñiện tử từ dạng cổng
vào ra ñơn giản cực Collector TTL hở trong
các ứng dụng cổng máy in ñến các loại cấu
trúc giao diện cổng tốc ñộ cao như các
chuẩn bus IEEE-488 hay SCSI Hầu hết các
chip ñiều khiển nhúng có một vài cổng vào
ra song song khả trình (có thể cấu hình)
Các giao diện ñó phù hợp với các cổng vào
ra ñơn giản như các khoá chuyển Chúng cũng phù hợp trong các bài toán phục vụ giao diện kết nối ñiều khiển và giám sát theo các giao diện như kiểu rơle bán dẫn
Giao diện nối tiếp
- I2C (Inter-IC)
Giao thức ưu tiên truyền thông nối tiếp ñược phát triển bởi Philips Semiconductor và ñược gọi là bus I2C Vì nguồn gốc nó ñược thiết kế là ñể ñiều khiển liên thông IC (Inter IC) nên nó ñược ñặt tên là I2C Tất cả các chíp có tích hợp và tương thích với I2C ñều có thêm một giao diện tích hợp trên Chip ñể truyền thông trực
Hình 17: Nguyên lý ñiển hình của 1 cổng I/O
Trang 3333
tiếp với các thiết bị tương thích I2C khác Việc truyền dữ liệu nối tiếp theo hai hướng 8 bit ñược thực thi theo 3 chếñộ sau:
- Chuẩn (Standard)—100 Kbits/sec
- Nhanh (Fast)—400 Kbits/sec
- Tốc ñộ cao (High Speed)—3.4 Mbits/sec
dữ liệu nối tiếp SDA và ñường truyền nhịp xung ñồng hồ nối tiếp SCL Vì cơ chế hoạt
ñều có một ñịa chỉ ñịnh nghĩa trước, trong ñó một số bit ñịa chỉ là thấp có thể cấu hình Đơn vị hoặc thiết bị khởi tạo quá trình truyền thông là ñơn vị Chủ và cũng là ñơn vị tạo xung nhịp ñồng bộ, ñiều khiển cho phép kết thúc quá trình truyền Nếu ñơn vị Chủ muốn truyền thông với ñơn vị khác nó sẽ gửi kèm thông tin ñịa chỉ của ñơn vị mà nó muốn truyền trong dữ liệu truyền Đơn vị Tớ ñều ñược gán và ñánh ñịa chỉ thông qua
ñó ñơn vị Chủ có thể thiết lập truyền thông và trao ñổi dữ liệu Bus dữ liệu ñược thiết
kế ñể cho phép thực hiện nhiều ñơn vị Chủ và Tớ ở trên cùng Bus
Quá trình truyền thông I2C ñược bắt ñầu bằng tín hiệu start tạo ra bởi ñơn vị Chủ Sau ñó ñơn vị Chủ sẽ truyền ñi dữ liệu 7 bit chứa ñịa chỉ của ñơn vị Tớ mà nó muốn truyền thông, theo thứ tự là các bit có trọng số lớn nhất MSB sẽ ñược truyền trước Bit thứ tám tiếp theo sẽ chứa thông tin ñể xác ñịnh ñơn vị Tớ sẽ thực hiện vai trò nhận (0) hay gửi (1) dữ liệu Tiếp theo sẽ là một bit ACK xác nhận bởi ñơn vị nhận
ñã nhận ñược 1 byte trước ñó hay không Đơn vị truyền (gửi) sẽ truyền ñi 1 byte dữ liệu bắt ñầu bởi MSB Tại ñiểm cuối của byte truyền, ñơn vị nhận sẽ tạo ra một bit xác nhận ACK mới Khuôn mẫu 9 bit này (gồm 8 bit dữ liệu và 1 bit xác nhận) sẽ ñược lặp lại nếu cần truyền tiếp byte nữa Khi ñơn vị Chủ ñã trao ñổi xong dữ liệu cần nó sẽ quan sát bit xác nhận ACK cuối cùng rồi sau ñó sẽ tạo ra một tín hiệu dừng STOP ñể kết thúc quá trình truyền thông
I2C là một giao diện truyền thông ñặc biệt thích hợp cho các ứng dụng truyền thông giữa các ñơn vị trên cùng một bo mạch với khoảng cách ngắn và tốc ñộ thấp Ví
dụ như truyền thông giữa CPU với các khối chức năng trên cùng một bo mạch như EEPROM, cảm biến, ñồng hồ tạo thời gian thực Hầu hết các thiết bị hỗ trợ I2C hoạt
ñơn giản ñể thực thi kết nối nhiều ñơn vị vì nó hỗ trợ cơ chế xác ñịnh ñịa chỉ
- SPI
SPI là một giao diện cổng nối tiếp ñồng bộ ba dây cho phép kết nối truyền thông nhiều VĐK ñược phát triển bởi Motorola Trong cấu hình mạng kết nối truyền thống này phảicó một VĐK giữ vai trò là Chủ (Master) và các VĐK còn lại có thể hoặc là Chủ hoặc là Tớ SPI có 4 tốc ñộ có thể lập trình, cực và pha nhịp ñồng hồ khả trình và kết thúc ngắt truyền thông Nhịp ñồng hồ không nằm trong dòng dữ liệu và phải ñược cung cấp như một tín hiệu tách ñộc lập Có ba thanh ghi SPSR, SPCR và SPDR cho phép thực hiện các chức năng ñiều khiển, trạng thái và lữu trữ Có bốn chân
cơ bản cần thiết ñể thực thi chuẩn giao diện truyền thông này
Trang 34- Dữ liệu vào MISO (Master Input – Slave Output)
- Nhịp xung chuẩn SCLK (Serial Clock)
- Lựa chọn thành phần tớ SS (Slave Select)
Hình 18: Nguyên lý kết nối 1 Master và 1 Slave sử dụng SPI
Hình 17 chỉ ra nguyên lý kết nối giữa một ñơn vị Chủ và một ñơn vị Tớ trong truyền thông SPI Trong ñó tín hiệu SCLK sẽ ñược tạo ra bởi ñơn vị Chủ và là tín hiệu vào của ñơn vị Tớ MOSI là ñường truyền dữ liệu ra từ ñơn vị Chủ tới ñơn vị Tớ và MISO là ñường truyền dữ liệu vào ñơn vị Chủ ñến từ ñơn vị Tớ Đơn vị Tớ ñược lựa chọn khi ñơn vị Chủ kích hoạt tín hiệu SS
sơ ñồ kết nối nguyên
lý mô tả như trong
Hình 18 Đơn vị Chủ
sẽ tạo ra tín hiệu chọn
ñơn vị Tớ nhờ các
chân tín hiệu logic ña
chức năng Các tín hiệu này phải ñược ñiều khiển và ñảm bảo ổn ñịnh về thời gian ñể tránh trường hợp tín hiệu bị thay ñổi trong quá trình ñang truyền dữ liệu Một ñiều dễ nhận ra rằng SPI không hỗ trợ cơ chế xác nhận trong quá trình thực hiện truyền thông Điều này phụ thuộc vào giao thức ñịnh nghĩa hoặc phải thực hiện bổ sung thêm một số các mở rộng phụ bên ngoài Khả năng truyền thông ñồng thời hai chiều với tốc ñộ lên ñến khoảng vài Mbit/s và nguyên lý khá ñơn giản nên SPI hoàn toàn phù hợp ñể thực hiện truyền thông giữa các thiết bị yêu cầu truyền thông tốc ñộ chậm, ñặc biệt hiệu quả trong các ứng dụng một ñơn vị Chủ và một ñơn vị Tớ Tuy nhiên trong các ứng dụng với nhiều ñơn vị Tớ việc thực thi lại khá phức tạp vì thiếu cơ chế xác ñịnh ñịa chỉ, và
sự phức tạp sẽ tăng lên khi số ñơn vị Tớ tăng
Trang 3535
thực tế mỗi dòng chip ra ñời ñược thiết kế chuyên biệt cho một phân khúc ứng dụng nào ñấy, vì thế không có một nguyên tắc chung hay một loại VXL/VĐK chung cho mọi bài toán Tuỳ vào khả năng và nhiệm vụ cụ thể của hệ thống mà ta chọn lựa loại chip phù hợp Trong một số bài toán và một số dòng chip thì sự phân biệt giữa các chip là không rõ dàng, nghĩa là có thể việc sử dụng các chip khác nhau nhưng mạng lại hiệu qua như nhau
Ngoài vi xử lý của máy tính, ta có thể phân loại ra hai dòng chip nhúng là vi xử
lý nhúng và vi ñiều khiển nhúng Vi xử lý nhúng ñược sử dụng rộng rãi với thị phần lớn nhất hiện nay là ARM, còn vi ñiều khiển thì có nhiều loại như AVR, PIC, 8051, Tuy nhiên trong phạm vi bài giảng này chi trình bày tóm lược một số loại chip là PIC,
8051, ARM, …
3.3.1 Họ vi ñiều khiển 8051
Vi ñiều khiển 8051 là vi ñiều khiển 8bit ñược intel giới thiệu vào năm 1981, hiện nay họ 8051 ñược phát triển thành nhiều dòng với các ñặc tính khác nhau về cấu hình, số các module tích hợp sẵn,…, một số dòng ñiển hình như 8052, 8031 Ngoài ra
có rất nhiều hãng sãn xuất chip có kiến trúc tương thích với 8051 như Philip, Atmel, Tuy nhiên cấu trúc chung của một chip họ 8051 có thể ñược biểu thị như hình 20
Hình 20: Cấu trúc tông quan của vi ñiều khiển họ 8051 của intel
Một số ñặc tính chung của chip họ 8051:
- Dải ñiện áp hoạt ñộng 4.0V ñến 5.5V
- Tần số hoạt ñộng: 0 Hz to 33 MHz
- 32 ñường vào/ra lập trình ñược
- Có thể mở rộng tối ña 64K ROM nội
- Có thể mở rộng tối ña 64K bộ nhớ dữ liệu ngoài
- Có thể mở rộng tối ña 64K bộ nhớ lập trình ngoài
- 128Byte RAM Nội
- Tích hợp sẵn cổng truyền thông chuẩn RS232
- Tích hợp sẵn các bộ ñịnh thời Timer 8/16bit
Trang 36AVR là một họ vi ñiều khiển do hãng Atmel sản xuất AVR là chip vi ñiều khiển 8 bits với cấu trúc tập lệnh ñơn giản hóa theo kiến trúc RISC(Reduced Instruction Set Computer), một kiểu cấu trúc ñang thể hiện ưu thế trong các bộ xử lí
So với các chip vi ñiều khiển 8 bits khác, AVR có nhiều ñặc tính hơn hẳn, hơn
cả trong tính ứng dụng (dễ sử dụng) và ñặc biệt là về chức năng:
- AVR tích hợp gần như ñầy ñủ các module chức năng thông dụng
- Thiết bị lập trình (mạch nạp) cho AVR ñơn giản
- Bên cạnh lập trình bằng ASM, cấu trúc AVR ñược thiết kế tương thích với ngôn ngữ C
- Các tính năng chung của AVR:
o Có thể sử dụng xung clock lên ñến 16MHz, hoặc sử dụng xung clock nội lên ñến 8 MHz (sai số 3%)
o Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn, có SRAM (Ram tĩnh) lớn, và ñặc biệt có bộ nhớ lưu trữ lập trình ñược EEPROM
o Nhiều ngõ vào ra (I/O PORT) 2 hướng (bit-directional)
o 8 bits, 16 bits timer/counter tích hợp PWM
o Các bộ chuyển ñối Analog – Digital phân giải 10 bits, nhiều kênh
o Chức năng Analog comparator
o Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232)
o Giao diện nối tiếp Two –Wire –Serial (tương thích chuẩn I2C) Master và Slaver
o Giao diện nối tiếp Serial Peripheral Interface (SPI)
o
Một số chip AVR thông dụng:
3.3.3 Họ vi ñiều khiển PsoC
PSoC viết tắt từ Programmable System On Chip, nghĩa là hệ thống khả trình trên một chíp Các chíp chế tạo theo công nghệ PSoC cho phép thay ñổi ñược cấu hình
Trang 3737
bằng cách gán chức năng cho các khối tài nguyên có sẵn trên chíp PsoC là chip dựa trêm công nghệ CsoC(Configurable System on Chip - ) thực sự là một công nghệ ưu việt nó tích hợp cả Processor và bộ nhớ RAM, FLASH, cho phép ta lập trình các thuật toán phức tạp một cách dễ dàng bằng ngôn ngữ C hoặc Assembler So với các vi ñiều khiển thông dụng như 8051, Motorola 68HC908, Microchip PIC16Fxx có cấu trúc CPU và ngoại vi cố ñịnh (fixel digital and analog penpherals) thì chíp PSoC có khả năng mềm dẻo thích ứng với ña dạng ứng dụng và nhất là khả năng tái cấu hình (reconfigurable) tạo thành nhiều loại chip khác nhau trên một chip ở những thời ñiểm khác nhau trong một ứng dụng Ví dụ chip PSoC của hãng Cypress Micro System, ta
có thể thiết kế cho nó thành một chip ñiều khiển ổn ñịnh nhiệt ñộ lò, ổn ñịnh và ñiều khiển chiều quay, tốc ñộ quay của ñộng cơ ñiện
Công nghệ chế tạo chip thông minh trong ño lường và ñiều khiển trên cơ sở CSoC có tính hiệu quả kinh tế, nhất là ñối với chip PSoC của Cypress Micro System vì
có khả năng xử lý hỗn hợp dữ liệu tương tự và số Nó cho ta khả năng phát triển các sản phẩm mới nhanh dễ dàng mở rộng những chức năng mới sau này Công nghệ này cho nhiều giải pháp lựa chọn và hỗ trợ ña dạng ứng dụng từ ño lường, ñiều khiển, xử
lý, truyền thông, kết nối mạng trên cùng một chip với giá thành thấp Hệ thống phần mềm hỗ trợ thiết kế chip PSoC Disigner của Cypress Micro System có ñầy ñủ các chức năng thiết kế, sắp xếp các khối chức năng, mô phỏng, lập trình, tìm lỗi và nạp chíp hiện ñại, có các module ứng dụng (user module) phong phú giúp ta không phải lập trình trên ngôn ngữ HDL (Hardware Description Languages) vừa khó bao quát, vừa không hiệu quả Ngoài ra giá thành của các chíp PSoC trắng từ 1- 5 USD/ chip rẻ hơn rất nhiều so các chip ngoại khác ñây là một cơ hội cho các doanh nghiệp và các nhóm say mê nghiên cứu, sáng tạo có thể ñạt ñến thành công lớn với các sản phẩm ñộc ñáo có các chip thông minh chứa các ý tưởng sáng tạo và bí quyết riêng của mình Trong số các hãng cung cấp công nghệ CSoC, thì công nghệ PSoC của hãng Cypress Micro System là phù hợp hơn cả cho ño lường và ñiều khiển do:
- Là công nghệ mới (ñược bình chọn là công nghệ sáng tạo năm 2001) của thế giới và ñược ñịnh hướng ñể phát triển các chip thông minh cho các thiết bị ño lường và ñiều khiển có số lượng lớn và giá thành thấp
- Là chip ñầu tiên trên thế giới cho phép tạo ra các chip có processor và khả năng xử lý ñồng thời các tín hiệu tương tự, số và truyền thông phong phú nhất trong các công nghệ CSoC hiện có (Mix – Signal Divice) Các giải pháp Processo + FPGA của hãng altera hoặc Xilinx và các hãng khác chỉ có thể cho phép ta tạo ra các chip số có Processor(Digital IC) hoặc một số chức năng analog cố ñịnh
- Là công nghệ có chức năng nhân cứng (MCA0 cho phép phát triển các thuật toán xử lý nhanh các phép tính như của chip DSP (Digital Signal Processing)
Trang 38các IP (Intellectual Properties) rẻ hơn nhiều so với các công cụ phát triển
và phần mền thiết kế FPGA
Mộ số ñặc tính PSoC CY8C29466
- Vi xử lý kiến trúc Harvard mạnh mẽ
- Tốc ñộ tối ña M8C lên ñến 24 MHz
- Hai bộ nhân 8x8, 32bit tích lũy
- 12 khối tương tự:
Chuyển ñổi ADC lên ñến 14-bit (ADCs)
Chuyển ñổi DAClên ñến 9-bit (DACs)
Bộ khuếch ñại lập trình ñược (PGAs)
Bộ so sánh là lọc lập trình ñược
- 16 khối số:
Timer/counter 8 ñến 32-bit, và ñiều chế ñộ rộng xung (PWMs)
Có các bộ kiểm tra lỗi CRC và PRS
Lên ñến 4 bộ truyền thông (UARTs)
Nhiều bộ truyền thông SPI chủ và tớ
Có thể kết nối ñến tất cả các chân như là chân ra vào số ña dụng
Trang 3939
3.3.4 Họ vi ñiều khiển ARM
ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc vi xử lý 32-bit kiểu RISC ñược sử dụng rộng rãi trong các thiết kế nhúng Do có ñặc ñiểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm ñiện tử di ñộng,
mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng ñầu
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, ñiều này khiến ARM trở thành cấu trúc 32-bit ñược sản xuất nhiều nhất trên thế giới CPU ARM ñược tìm thấy khắp nơi trong các sản phẩm thương mại ñiện tử, từ thiết bị cầm tay (PDA, ñiện thoại di ñộng, máy ña phương tiện, máy trò chơi cầm tay, và máy tính cầm tay) cho ñến các thiết bị ngoại vi máy tính (ổ ñĩa cứng, bộ ñịnh tuyến ñể bàn.) Một nhánh nổi tiếng của họ ARM là các vi xử lý Xscale của Intel
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
Các dạng lõi và tính năng của một số dòng ARM:
Họ Lõi Đặ c tính Cache (I/D)/MMU MIPS ñiển hình @
MHz
ARM710T MMU 36 MIPS @ 40 MHz ARM720T 8KB unified, MMU 60 MIPS @ 59.8 MHz
ARM7EJ-S Jazelle DBX không
ARM920T 16KB/16KB, MMU 200 MIPS @ 180 MHz ARM922T 8KB/8KB, MMU
ARM940T 4KB/4KB, MPU
coupled memories, MPU ARM966E-S không có cache, TCMs ARM968E-S không có cache, TCMs ARM926EJ-S Jazelle DBX thay ñổi ñược, TCMs,
MMU
220 MIPS @ 200 MHz
Trang 40processor MPU
ARM1022E (VFP) 16KB/16KB, MMU ARM1026EJ-S Jazelle DBX variable, MMU or MPU
DBX, (VFP)
variable, MMU
ARM1156T2(F)-S SIMD, Thumb-2,
(VFP)
thay ñổi ñược, MPU
ARM1176JZ(F)-S SIMD, Jazelle
DBX, (VFP)
thay ñổi ñược, MMU+TrustZone ARM11 MPCore 1-4 core SMP,
SIMD, Jazelle DBX, (VFP)
thay ñổi ñược, MMU
profile, NEON, Jazelle RCT, Thumb-2
variable (L1+L2), MMU+TrustZone
lên ñến 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz) Cortex-R4 Embedded
processor PXA255 32KB/32KB, MMU 400 BogoMips @400
MHz PXA26x
PXA800(E)F Monahans 1000 MIPS @ 1.25
GHz PXA900
IXC1100 Control Plane
Processor IXP2400/IXP2800
IXP2850 IXP2325/IXP2350 IXP42x
IXP460/IXP465
Các ñặc tính thiết kế: