CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG NHÚNG 1. Khái quát về hệ thống nhúng 1. Khái niệm về hệ thống nhúng Hệ thống nhúng (Embedded System) là thuật ngữ chỉ một hệ thống có khả năng tích hợp cả phần cứng và 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, tự động hoá điều khiển quan trọng và truyền tin, hoạt động tự trị được nhúng vào trong một môi trường hay một hệ thống khác quy mô phức tạp hơn.1: Các ứng dụng của hệ thống nhúng Vì hệ thống nhúng được thiết kế cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất, do đó các hệ thống nhúng thường được sản xuất hàng loạt với số lượng lớn, đa dạng, phong phú về chủng loại. Xét về độ phức tạp, hệ thống nhúng có thể đơn giản chỉ với một vi điều khiển hoặc rất phức tạp được cấu thành từ nhiều đơn vị, các thiết bị ngoại vi và mạng lưới được thiết kế nằm trong một lớp vỏ máy lớn.
2 Phân bố rộng rãi các ứng dụng của hệ thống nhúng trên thị trường được mô tả trong bảng 1.1 sau đây: Bảng 1.1: Các thị trường ứng dụng hệ thống nhúng Consumer Electronics Điện tử tiêu dùng Control Systems and Industrial Hệ thống điều khiển và tự động Automation hóa công nghiệp Bio-medical Systems Hệ thống y tế sinh học Field Instrumentation Thiết bị đo lường Handheld Computers Máy tính cầm tay Data Communication Truyền thông dữ liệu Network Information Appliances Thiết bị thông tin mạng Telecommunications Viễn thông Wireless Communications Truyền thông không dây 1. Lịch sử phát triển của hệ thống nhúng Cuối 1980: Các hệ thống nhúng trở nên phổ 1960: Máy tính dẫn đường 1970: bộ xử lý 8 bit biến trong hầu hết thiết Apollo phát triển bởi Charles cho các chip nhớ bị điện tử Stark Draper có khả năng xử lý ngoài và hỗ trợ khác mạnh mẽ 1961: máy dẫn đường Giữa 1980: sản xuất các 1996: Minuteman II Autonetics D-17 cho tên vi điều khiển và được dạng máy tính mới sử lửa quân sự chấp nhận rộng rãi dụng mạch tích hợp Hình 1.2: Lịch sử phát triển của hệ thống nhúng Hệ thống nhúng đầu tiên là Apollo Guidance Computer (Máy tính dẫn đường Apollo) được phát triển bởi Charles Stark Draper tại phòng thí nghiệm của trường đại học MIT. Hệ thống nhúng được sản xuất hàng loạt đầu tiên là máy dẫn đường cho tên lửa quân sự Autonetics D-17 vào năm 1961, được xây dựng sử dụng những bóng bán dẫn và một đĩa cứng để duy trì bộ nhớ. Khi Minuteman II được đưa vào sản xuất năm 1996, D-17 đã được thay thế với một máy tính mới sử dụng mạch tích hợp.
Tính năng thiết kế chủ yếu của máy tính Minuteman là đưa ra thuật toán có thể lập trình lại sau đó hỗ trợ làm cho tên 3 lửa xác định mục tiêu chính xác hơn, và máy tính có thể kiểm tra tên lửa, giảm trọng lượng của cáp điện và đầu nối điện. Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã giảm giá và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên hướng đến người dùng là Intel 4004, được phát minh phục vụ máy tính điện tử và những hệ thống nhỏ khác, tuy nhiên vẫn cần sử dụng các chip nhớ ngoài và những hỗ trợ khác. Vào những năm cuối 1970, những bộ xử lý 8 bit đã được sản xuất, tuy nhiên nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến nhiều thành phần có thể đưa vào một chip xử lý. Các bộ vi xử lý được gọi là các vi điều khiển và được chấp nhận rộng rãi. Với giá thành thấp, các vi điều khiển này trở nên hấp dẫn để xây dựng các hệ thống chuyên dụng. Đã có một sự bùng nổ về số lượng các hệ thống nhúng trong tất cả các lĩnh vực thị trường và số các nhà đầu tư sản xuất theo hướng này.
Ví dụ, một số lượng lớn các chip xử lý đặc biệt xuất hiện với nhiều giao diện lập trình hơn là kiểu song song truyền thống để kết nối các vi xử lý. Vào cuối những năm 80, các hệ thống nhúng đã trở nên phổ biến trong hầu hết các thiết bị điện tử và khuynh hướng này vẫn còn tiếp tục cho đến nay. Hiện nay hệ thống nhúng đã và đang từng bước phát triển ở Việt nam thay cho các hệ thống vi xử lý trước đây. Hệ thống nhúng được ứng dụng rộng rãi trong ngành điện tử, máy tính và viễn thông như các hệ thống điện thoại, các máy đo, các hệ thống điều khiển tự động trong công nghiệp, thương mại và ngân hàng.
Có thể kể tới ứng dụng của hệ thống nhúng trong nhiều sản phẩm gần gũi với cuộc sống con người như: ✓ Các hệ thống dẫn đường trong không lưu, hệ thống định vị toàn cầu, vệ tinh. ✓ Các thiết bị gia dụng: tủ lạnh, lò vi sóng, lò nướng… ✓ Các thiết bị kết nối mạng: router, hub, gateway… ✓ Các thiết bị văn phòng: máy photocopy, máy fax, máy in, máy scan… ✓ Các thiết bị y tế: máy thẩm thấu, máy điều hòa nhịp tim… ✓ Các máy trả lời tự động ✓ Dây chuyền sản xuất tự động trong công nghiệp, robots. Đặc điểm của hệ thống nhúng Đặc điểm của các hệ thống nhúng là hoạt động ổn định và khả năng tự động hoá cao. Hệ thống nhúng thường có một số đặc điểm chung như sau: • Được thiết kế thực hiện một số nhiệm vụ chuyên dụng chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng.
Một số hệ thống đòi hỏi ràng buộc về hoạt động trong thời gian thực để đảm bảo độ an toàn và tính ứng dụng; một số hệ thống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất. • Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống phức tạp nằm trong thiết bị mà nó điều khiển. • Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash. Phần mềm thường chạy với tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp.
Các thành phần cơ bản trong cấu trúc phần cứng hệ thống nhúng ➢ Kiến trúc vi xử lý Trong mục này giới thiệu ngắn gọn cấu trúc nguyên lý của các chip xử lý nhúng ứng dụng trong các hệ thống nhúng hiện nay. Sự phát triển nhanh chóng các chủng loại chip khả trình với mật độ tích hợp cao đã và đang tác động đáng kể đến sự thay đổi trong thiết kế các nền tảng phần cứng. Thiết bị xử lý và điều khiển số trong thập kỷ gần đây đều có những đặc điểm và phạm vi đối tượng ứng dụng và luôn không ngừng phát triển để đáp ứng một cách tốt nhất cho các yêu cầu công nghệ. Chúng đang hướng tới tập trung cho một thị trường công nghệ tiềm năng rộng lớn đó là các thiết bị xử lý và điền khiển nhúng.
Có thể kể ra hàng loại các chip khả trình có thể sử dụng cho các bài toán thiết kế hệ thống nhúng như các họ vi xử lý/vi điều khiển nhúng (Microprocessor/ Microcontroller), chip DSP (Digital Signal Processing), các chip khả trình theo trường (FPD – Field Programmable Device). Không dễ dàng tìm kiếm một chip xử lý điều khiển phù hợp cho ứng dụng khi bắt đầu công việc thiết kế. Vì vậy cần phải có sự hiểu biết và phân biệt rõ về đặc điểm và ứng dụng của chúng khi lựa chọn và thiết kế. Các thông tin liên quan như nhà sản xuất cung cấp Chip, các kiến thức và công cụ phát triển kèm theo.3: Cấu trúc nguyên lý của vi xử lý / vi điều khiển nhúng Chip vi xử lý/vi điều khiển nhúng là một chủng loại điển hình và đang được sử dụng phổ biế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 áp 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, các họ vi xử lý điều khiển của 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 chip 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à 8 bit, 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 như NoC (Network on Chip) hoặc SoC (System on 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. 6 ✓ Bộ nhớ • Kiến trúc bộ nhớ Kiến trúc bộ nhớ hệ thống nhúng thường 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à 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 thi trên đó.4: Cấu trúc bộ nhớ Von Neumann và Havard • Kiến trúc Havard Kiến trúc Havard 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.