BÀI GIẢNG HỆ THỐNG NHÚNG

72 402 1
BÀI GIẢNG HỆ THỐNG NHÚNG

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

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

Thông tin tài liệu

BỘ GIAO THÔNG VẬN TẢI TRƢỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: KỸ THUẬT MÁY TÍNH KHOA: CÔNG NGHỆ THÔNG TIN BÀI GIẢNG HỆ THỐNG NHÚNG TÊN HỌC PHẦN MÃ HỌC PHẦN TRÌNH ĐỘ ĐÀO TẠO DÙNG CHO SV NGÀNH : HỆ THỐNG NHÚNG : 17312 : ĐẠI HỌC CHÍNH QUY : CÔNG NGHỆ THÔNG TIN HẢI PHÒNG - 2010 MỤC LỤC CHƢƠNG - TỔNG QUAN 1.1 Tổng quan 1.1.1 Hệ thống nhúng 1.1.2 Hệ thống thời gian thực 1.1.3 Lĩnh vực ứng dụng hệ thống nhúng 1.2 Kiến trúc hệ thống nhúng 1.3 Thiết kế hệ thống nhúng 10 1.4 Mô hình hệ thống nhúng 12 Chƣơng - HỆ THỐNG PHẦN CỨNG 13 2.1 Tổng quan 13 2.1.1 Bộ nhớ 13 2.1.2 Các thành phần kết nối 13 2.2 Hệ vi xử lý 14 2.2.1 Tổng quan 14 2.2.2 Kiến trúc vi xử lý 16 2.2.3 Sự thực thi 17 2.3 Bộ nhớ 24 2.3.1 Tổng quan 24 2.3.2 Bộ nhớ ROM 25 2.3.3 Bộ nhớ RAM 26 2.3.4 Quản lý nhớ 27 2.4 Thiết bị ngoại vi 28 2.4.1 Tổng quan 28 2.4.2 Vào nối tiếp 30 2.4.3 Vào song song 31 2.5 Bus 33 2.5.1 Bus địa 33 2.5.2 Bus liệu 33 2.5.3 Bus điều khiển 34 Chƣơng – PHẦN MỀM NHÚNG 35 3.1 Tổng quan 35 3.2 Trình điều khiển thiết bị 35 3.2.1 Tổng quan 35 3.2.2 Ngắt 36 3.2.3 Bộ nhớ 37 3.2.4 Bus 38 -1- 3.3 Hệ điều hành hệ thống nhúng 38 3.3.1 Tổng quan 38 3.3.2 Tiến trình 40 3.3.3 Quản lý tiến trình 40 3.3.4 Quản lý nhớ 42 3.4 Phần mềm ứng dụng 45 3.4.1 Middleware 45 3.4.2 Application 46 Chƣơng – THIẾT KẾ HỆ THỐNG NHÚNG THEO CÁC HỌ VI XỬ LÝ 47 4.1 Tổng quan 47 4.2 Họ vi xử lý AT89C 48 4.2.1 Tổng quan 48 4.2.2 Kiến trúc họ vi xử lý AVR 49 4.2.3 Tập lệnh 50 4.2.4 Sự thực thi 52 4.2.5 Thiết kế ứng dụng 54 4.3 Họ vi xử lý AVR 57 4.3.1 Tổng quan 57 4.3.2 Kiến trúc họ 58 4.3.3 Tập lệnh AVR 59 4.3.4 Sự thực thi 59 4.3.5 Thiết kế ứng dụng 61 4.4 Họ vi xử lý ARM 64 4.4.1 Tổng quan 64 4.4.2 Kiến trúc họ 64 4.4.3 Tập lệnh 65 4.4.4 Sự thực thi 65 4.4.5 Thiết kế ứng dụng 66 -2- YÊU CẦU VÀ NỘI DUNG CHI TIẾT Tên học phần: Hệ thống nhúng Bộ môn phụ trách giảng dạy: Kỹ thuật máy tính Mã học phần: 17312 TS tiết 45 Lý thuyết 45 Thực hành/Xemina Tự học Loại học phần: Khoa phụ trách: CNTT Tổng số TC: Đồ án môn học Bài tập lớn x Điều kiện tiên quyết: Sinh viên phải học xong học phần sau đƣợc đăng ký học phần này: Kiến trúc máy tính, Điện tử số, Mạch tín hiệu, Kỹ thuật Vi xử lí, Nguyên lý hệ điều hành, Mục tiêu học phần: Cung cấp kiến thức về kiến trúc mô hình hệ thống nhúng Áp dụng xây dựng hệ thống nhúng dựa thiết bị, họ vi xử lý thông dụng Nội dung chủ yếu Chƣơng 1: Tổng quan Chƣơng 2: Hệ thống phần cứng Chƣơng 3: Phần mềm nhúng Chƣơng 4: Thiết kế hệ thống nhúng theo họ Vi xử lí Nội dung chi tiết: TÊN CHƢƠNG MỤC Chƣơng 1: Tổng quan 1.1 Tổng quan 1.2 Kiến trúc hệ thống nhúng 1.3 Thiết kế hệ thống nhúng 1.4 Các mô hình hệ thống nhúng 1.5 Các chuẩn Chƣơng 2: Hệ thống phần cứng 2.1 Tổng quan 2.2 Hệ Vi xử lí 2.2.1 Tổng quan 2.2.2 Kiến trúc vi xử lí hệ thống nhúng 2.2.3 Sự thực thi 2.3 Bộ nhớ 2.3.1 Tổng quan 2.3.2 Bộ nhớ ROM 2.3.3 Bộ nhớ RAM 2.3.4 Quản lí nhớ TS 10 PHÂN PHỐI SỐ TIẾT LT BT TH KT 2 1 -3- TÊN CHƢƠNG MỤC 2.4 Thiết bị ngoại vi 2.4.1 Tổng quan 2.4.2 Vào nối tiếp 2.4.3 Vào song song 2.5 BUS Chƣơng 3: Phần mềm nhúng 3.1 Tổng quan 3.2 Trình điều khiển thiết bị 3.2.1 Tổng quan 3.2.2 Ngắt 3.2.3 Bộ nhớ 3.2.4 BUS 3.3 Hệ điều hành hệ thống nhúng 3.3.1 Tổng quan 3.3.2 Tiến trình 3.3.3 Quản lí tiến trình 3.3.4 Quản lí nhớ 3.3.5 Quản lí thiết bị ngoại vi 3.4 Phần mềm ứng dụng Chƣơng 4: Thiết kế hệ thống nhúng theo họ VXL 4.1 Tổng quan 4.2 Họ vi xử lí AT89C 4.2.1 Tổng quan 4.2.2 Kiến trúc họ 4.2.3 Tập lệnh 4.2.4 Sự thực thi 4.2.5 Thiết kế ứng dụng 4.3 Họ vi xử lí AVR 4.3.1 Tổng quan 4.3.2 Kiến trúc họ vi xử lý AVR 4.3.3 Tập lệnh 4.3.4 Sự thực thi 4.3.5 Thiết kế ứng dụng 4.4 Họ vi xử lí ARM 4.4.1 Tổng quan 4.4.2 Kiến trúc họ 4.4.3 Tập lệnh 4.4.4 Sự thực thi 4.4.5 Thiết kế ứng dụng TS PHÂN PHỐI SỐ TIẾT LT BT TH KT 1 16 16 BTL 5 -4- Nhiệm vụ sinh viên : Tham dự buổi thuyết trình giáo viên, tự học, tự làm tập giáo viên giao, tham dự kiểm tra định kỳ cuối kỳ, hoàn thành tập lớn theo yêu cầu Tài liệu học tập : - Al.M.Zied , Embedded System Architecture, NXB Elsevier - John Catsoulis, Designing Embedded Hardware, NXB O'Reilly - Ken Arnold, Embedded Controller Hardware Design, NXB LLH Technology - Dhananjay V.Gadre, Programming And Customizing The AVR Microcontroller, NXB Mc.Graw Hill - Steve Furber, ARM System On Chip Architecture, NXB Dorling Kindersley Hình thức tiêu chuẩn đánh giá sinh viên: - Đánh giá dựa tình hình tham dự buổi học lớp, buổi thực hành, điểm kiểm tra thƣờng xuyên điểm kết thúc học phần - Hình thức thi cuối kỳ : thi viểt + kiểm tra vấn đáp BTL Thang điểm: Thang điểm chữ A, B, C, D, F Điểm đánh giá học phần Z = 0.3X + 0.7Y Bài giảng tài liệu thức thống Bộ môn Kỹ thuật máy tính, Khoa Công nghệ Thông tin đƣợc dùng để giảng dạy cho sinh viên Ngày phê duyệt: 15 / / 2010 Trƣởng Bộ môn: ThS Ngô Quốc Vinh -5- CHƢƠNG - TỔNG QUAN 1.1 Tổng quan Hệ điều khiển nhúng môn học nhằm cung cấp kiến thức cho sinh viên khả phân tích thiết kế hệ thống điều khiển thông minh hoá hệ thống theo chức theo giải pháp công nghệ Thiết kế thực thi điều khiển phần cứng nhúng Kỷ nguyên công nghệ tiếp tục phát triển không ngừng nhằm thông minh hoá đại hoá thông suốt hệ thống Có thể nói đánh dấu đời phát triển hệ nhúng trƣớc tiên phải kể đến đời vi xử lý, vi điều khiển Nó đƣợc đánh dấu đời Chip vi xử lý 4004 vào năm 1971 cho mục đích tính toán thƣơng mại công ty Nhật Busicom sau đƣợc chắp cánh phát triển vƣợt bậc Intel để trở thành siêu xử lý nhƣ Chip đƣợc ứng dụng cho PC nhƣ ngày Thập kỷ 80 đƣợc coi khởi điểm bắt đầu kỷ nguyên bùng nổ phát triển hệ nhúng Từ khởi nguồn cho sóng đời hàng loạt chủng loại vi xử lý gắn liền hệ nhúng để thâm nhập rộng khắp ứng dụng hàng ngày sống ví dụ nhƣ, thiết bị điện tử sử dụng cho sinh hoạt hàng ngày (lò vi sóng, TV, tủ lạnh, máy giặt, điều hoà ) văn phòng làm việc (máy fax, máy in, máy điện thoại ) Các vi xử lý phần mềm ngày đƣợc sử dụng rộng rãi nhiều hệ thống nhỏ Các loại vi xử lý đƣợc sử dụng hệ thống nhúng vƣợt xa so với PC số lƣợng chủng loại (chiếm đến 79% số vi xử lý tồn [2] ) tiếp tục phát triển để nhằm đáp ứng thoả mãn nhiều ứng dụng đa dạng Trong số ứng dụng Chip vi xử lý bit, 16 bit chủ yếu 32 bit (chiếm khoảng 75%) Gắn liền với phát triển phần cứng, phần mềm phát triển với tốc độ nhanh không thua chí tăng nhanh nhiều theo phát triển hệ nhúng Ta xem xét số khái niệm sau 1.1.1 Hệ thống nhúng Vậy hệ nhúng? Trong giới thực thiết bị hay hệ thống điện/điện tử có khả xử lý thông tin điều khiển tiềm ẩn thiết bị hay hệ nhúng, ví dụ nhƣ thiết bị truyền thông, thiết bị đo lƣờng điều khiển, thiết bị phục vụ sinh hoạt hàng ngày nhƣ lò vi sóng, máy giặt, camera…Rất dễ dàng để kể hàng loạt thiết bị hay hệ thống nhƣ tồn quanh ta, chúng hệ nhúng Vậy hệ nhúng thực chất nên hiểu hệ nhúng? Hiện chƣa có định nghĩa thực thoả đáng để đƣợc chuẩn hoá thừa nhận rộng rãi cho hệ nhúng mà khái niệm diễn tả chúng thông qua đặc thù chung Tuy nhiên hiểu hệ nhúng phần hệ thống xử lý thông tin nhúng hệ thống lớn, phức hợp độc lập ví dụ nhƣ ôtô, thiết bị đo lƣờng, điều khiển, truyền thông thiết bị thông minh nói chung Chúng tổ hợp phần cứng phần mềm để thực một nhóm chức chuyên biệt, cụ thể (Trái ngƣợc với máy tính PC mà thƣờng thấy đƣợc sử dụng cho chức mà nhiều chức hay phục vụ chung cho nhiều mục đích) PC thực chất lại hệ thống lớn, tổ hợp nhiều hệ thống nhúng ví dụ nhƣ card hình, âm thanh, modem, ổ cứng, bàn phím…Chính điều làm dễ lúng túng đƣợc hỏi nên hiểu PC, có phải hệ nhúng hay không 1.1.2 Hệ thống thời gian thực Trong toán điều khiển ứng dụng hay gặp thuật ngữ “thời gian thực” Thời gian thực có phải thời gian phản ánh độ trung thực thời gian hay không? Thời gian thực có phải hiển thị xác đồng theo nhƣ nhịp đồng hồ đếm thời gian hay không? Không phải hoàn toàn nhƣ vậy! Thực chất, theo cách hiểu nói hệ thống kỹ thuật đặc biệt hệ thống yêu cầu khắt khe ràng buộc thời gian, thời gian -6- thực đƣợc hiểu yêu cầu hệ thống phải đảm bảo thoả mãn tính tiền định hoạt động hệ thống Tính tiền định nói lên hành vi hệ thống thực khung thời gian cho trƣớc hoàn toàn xác định Khung thời gian đƣợc định đặc điểm yêu cầu hệ thống, vài giây vài nano giây nhỏ Ở phân biệt yếu tố thời gian gắn liền với khái niệm thời gian thực Không phải hệ thống thực nhanh đảm bảo đƣợc tính thời gian thực nhanh hay chậm hoàn toàn phép so sánh có tính tƣơng đối mili giây nhanh với hệ thống điều khiển nhiệt nhƣng lại chậm đối tƣợng điều khiển điện nhƣ dòng, áp… Hơn nhanh không chƣa đủ mà phải đảm bảo trì ổn định chế hoạt động tin cậy Chính hệ thống không kiểm soát đƣợc hoạt động (bất định) hệ thống đảm bảo tính thời gian thực hệ thống cho đáp ứng nhanh, chí nhanh nhiều so với yêu cầu đặt Một ví dụ minh hoạ tiêu biểu chế truyền thông liệu qua đƣờng truyền chuẩn Ethernet truyền thống, biết tốc độ truyền nhanh nhƣng hệ hoạt động thời gian thực không thoả mãn tính tiền định chế truyền liệu (có thể nhanh chậm có canh trạnh giao thông đƣờng truyền bị nghẽn) Ngƣời ta phân làm hai loại khái niệm thời gian thực cứng (hard real time) mềm (soft real time) Thời gian thực cứng hệ thống hoạt động với yêu cầu thoả mãn ràng buộc khung thời gian cứng tức vi phạm dẫn đến hoạt động toàn hệ thống bị sai bị phá huỷ Ví dụ hoạt động điều khiển cho lò phản ứng hạt nhân, chậm định dẫn đến thảm hoạ gây phản ứng phân hạch dẫn đến bùng nổ hệ thống Thời gian thực mềm hệ thống hoạt động với yêu cầu thoả mãn ràng buộc khung thời gian mềm, vi phạm sai lệch nằm khoảng cho phép hệ thống hoạt động đƣợc chấp nhận đƣợc Ví dụ nhƣ hệ thống phát truyền hình, thông tin truyền từ trạm phát tới ngƣời nghe/nhìn chậm vài giây không ảnh hƣởng đáng kể đến tính thời tin đƣợc truyền hoàn toàn đƣợc chấp nhận ngƣời theo dõi Thực tế thấy hầu hết hệ nhúng hệ thời gian thực hầu hết hệ thời gian thực hệ nhúng Điều phản ánh mối quan hệ mật thiết hệ nhúng thời gian thực tính thời gian thực trở thành nhƣ thuộc tính tiêu biểu hệ nhúng Vì đề cập tới hệ nhúng ngƣời ta nói tới đặc tính tính thời gian thực 1.1.3 Lĩnh vực ứng dụng hệ thống nhúng Chúng ta kể đƣợc nhiều ứng dụng hệ thống nhúng đƣợc sử dụng nay, xu thể tiếp tục tăng nhanh Một số lĩnh vực sản phẩm thị trƣờng rộng lớn hệ nhúng đƣợc nhóm nhƣ sau:  Các thiết bị điều khiển  Ôtô, 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ị dây truyền sản xuất  Rôbốt  1.2 Kiến trúc hệ thống nhúng Kiến trúc hệ thống nhúng thể mức độ suốt thiết bị nhúng, hệ thống nhúng thông thƣờng thông tin cài đặt cụ thể nhƣ mã nguồn chi tiết mạch điện Tại mức kiến trúc, thành phần phần cứng -7- phần mềm thể số elements, đơn vị tƣơng tác với thành phần khác Elements thể phần cứng phần mềm mà thông tin cài đặt cụ thể đƣợc ẩn đi, elements cho ta biết thông tin hành vi chúng Ta có internal external elemént, internal element liên kết với thiết bị nhúng external elemements liên kết với internal elements Tóm lại, kiến trúc hệ thống nhúng bao gồm thành phần hệ thống Các elements liên kết với hệ thống, thuộc tính thành phần elements cụ thể mối quan hệ elements Thông tin mức kiến trúc hệ thống nhúng đƣợc biểu diễn dƣới dạng cấu trúc Một cấu trúc biểu diễn phần kiến trúc, đồng thời bao gồm tập hợp thành phần, thuộc tính mối liên hệ thành phần Mỗi cấu trúc snapshot hệ thống phần cứng/phần mềm thời điểm thiết kế thực thi Cho trƣớc môi trƣờng thực thi tập hợp thành phần Do khó để dùng snapshot mô tả tất độ phức tạp hệ thống, thông tin kiến trúc thƣờng đƣợc tạo từ nhiều cấu trúc Tất cấu trúc kiến trúc đƣợc kế thừa liên quan đến cấu trúc khác Bảng sau mô tả số cấu trúc đƣa giải thích liên quan thành phần -8- Virtal Machine Chennel Architecture Layers SubSystem Kernel Module Decomposition Class Component and Connector Client/Server Process Concurrent and Resource Interrupt Scheduling Memory Safety and Reliability Alocation Work Assignment Implementation Deployment Hình 1.1 Các kiến trúc hệ thống nhúng Trong đó:  Module: thành phần đƣợc định nghĩa với chức khác nhau, đơn vị phần mềm/phần cứng cần thiết để hệ thống hoạt động Cấu trúc mô tả với module thƣờng đƣợc sử dụng để giới thiệu sản phẩm  SubSystem: biểu diễn hình ảnh module thời điểm thực thi có liên kết hoạt động module với -9- 4.3 Họ vi xử lý AVR 4.3.1 Tổng quan Vi điều khiển AVR hãng Atmel sản xuất đƣợc gới thiệu lần đầu năm 1996 AVR có nhiều dòng khác bao gồm dòng Tiny AVR ( nhƣ AT tiny 13, ATtiny 22…) có kích thƣớc nhớ nhỏ, phận ngoại vi, đến dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thƣớc nhớ vào loại trung bình mạnh dòng Mega ( nhƣ ATmega32, ATmega128,…) với nhớ có kích thƣớc vài Kbyte đến vài trăm Kb với ngoại vi đa dạng đƣợc tích hợp chip, có dòng tích hợp LCD chip ( dòng LCD AVR ) Tốc độ dòng Mega cao so với dòng khác Sự khác dòng chình cấu trúc ngoại vi, nhân nhƣ Hình 4.2 Các dòng AVR Những đặc trƣng bao gồm  ROM : 128 Kbytes  SRAM: 4Kbytes  EEPROM : 4Kbytes  64 ghi I/O  160 ghi vào mở rộng  32 ghi đa mục đích  định thời bit (0,2)  định thời 16 bit (1,3)  Bộ định thời watchdog  Bộ dao động nội RC tần số MHz, MHz, MHz, MHz  ADC kênh với độ phân giải 10 bit (Ở dòng Xmega lên tới 12 bit )  kênh PWM bit  kênh PWM lập trình thay đổi độ phân giải từ tới 16 bit  Bộ so sánh tƣơng tự lựa chọn ngõ vào  Hai khối USART lập trình đƣợc  Khối truyền nhận nối tiếp SPI  Khối giao tiếp nối tiếp dây TWI  Hỗ trợ boot loader  chế độ tiết kiệm lƣợng  Lựa chọn tần số hoạt động phần mềm  Đóng gói 64 chân kiểu TQFP  Tần số tối đa 16MHz  Điện : 4.5v - 5.5v - 57 - 4.3.2 Kiến trúc họ AVR Hình 4.3 Sơ đồ khối AVR Bộ nhớ Memory Bộ nhớ vi điều khiển AVR có cấu trúc Harvard cấu trúc có đƣờng Bus riêng cho nhớ chƣơng trình nhớ liệu Bộ nhớ AVR đƣợc chia làm phần chính: Bộ nhớ chƣơng trình ( program memory ) nhớ liệu ( Data memory ) Bộ Nhớ Chƣơng Trình : Bộ nhớ chƣơng trình AVR nhớ Flash có dung lƣợng 128 K bytes Bộ nhớ chƣơng trình có độ rộng bus 16 bit Những địa nhớ chƣơng trình đƣợc dùng cho bảng véc tơ ngắt Cần để ý vi điều khiển ATmega128 nhớ chƣơng trình đƣợc chia làm phần : phần boot loader ( Boot loader program section ) phần ứng dụng ( Application program section ) Phần boot loader chứa chƣơng trình boot loader Chƣơng trình Boot loader phần mềm nhỏ nạp vi điều khiển đƣợc chạy lúc khởi động Phần mềm tải vào vi điều khiển chƣơng trình ngƣời sử dụng sau thực thi chƣơng trình Mỗi reset vi điều khiển CPU nhảy tới thực thi chƣơng trình boot loader trƣớc, chƣơng trình boot loader dò xem có chƣơng trình cần nạp vào vi điều khiển hay không, có chƣơng trình cần nạp, boot loader nạp chƣơng trình vào vùng nhớ ứng dụng (Application program section ), thực thi chƣơng trình Ngƣợc lại, boot loader chuyển tới chƣơng trình ứng dụng có sẵn vùng nhớ ứng dụng để thực thi chƣơng trình - 58 - Phần ứng dụng (Application program section ) vùng nhớ chứa chƣơng trình ứng dụng ngƣời dùng Kích thƣớc phần boot loader phần ứng dụng tùy chọn Hình thể cấu trúc nhớ chƣơng trình có sử dụng không sử dụng boot loader, sử dụng phần boot loader ta thấy word thay thị cho CPU chuyển tới chƣơng trình ứng dụng ngƣời dùng (là chƣơng trình có nhãn start ) thị CPU nhảy tới phần chƣơng trình boot loader để thực trƣớc, quay trở lại thực chƣơng trình ứng dụng Bộ Nhớ Dữ Liệu : Bộ nhớ liệu AVR chia làm phần nhớ SRAM nhớ EEPROM Tuy nhớ liệu nhƣng hai nhớ lại tách biệt đƣợc đánh địa riêng Bộ nhớ SRAM có dụng lƣợng K bytes, Bộ nhớ SRAM có hai chế độ hoạt động chế độ thông thƣờng chế độ tƣơng thích với ATmega103, muốn thiết lập nhớ SRAM hoạt động theo chế độ ta sử dụng bit cầu chì M103C Bộ nhớ EEPROM : Đây nhớ liệu ghi xóa lúc vi điều khiển hoạt động không bị liệu nguồn điện cung cấp bị cắt Có thể ví nhớ liệu EEPROM giống nhƣ ổ cứng ( Hard disk ) máy vi tính Với vi điều khiển ATmega128, nhớ EEPROM có kích thƣớc Kbyte EEPROM đƣợc xem nhƣ nhớ vào đƣợc đánh địa độc lập với SRAM, điều có nghĩa ta cần sử dụng lệnh in, out … muốn truy xuất tới EEPROM 4.3.3 Tập lệnh AVR Tập lệnh đƣợc chia thành nhóm sau: Các lệnh toán học logic: Một số lệnh đáng ý nhóm cộng (ADD), trừ (SUB), nhân (MUL), chia (FMUL), xóa (CLR), tăng (INC), giảm (DEC) Lệnh rẽ nhánh: Gồm có lệnh nhảy, lệnh gọi chƣơng trình con, lệnh trở về, lệnh so sánh, lệnh rẽ nhánh Lệnh di chuyển liệu: Gồm có lệnh chép liệu (MOV), xuất nhập liệu, PUSH, POP Các lệnh thao tác BIT: SBI, CBI, LSL, … Các lệnh điều khiển MCU: NOP, SLEEP, WDR 4.3.4 Sự thực thi Cổng vào Cổng vào số phƣơng tiện để vi điều khiển giao tiếp với thiết bị ngoại vi ATmega128 có thảy cổng ( port ) vào bit : PortA, PortB, PortC, PortD, PortE, PortF, PortG, tƣơng ứng với 56 đƣờng vào Các cổng vào AVR cổng vào hai chiều định hƣớng, tức chọn hƣớng cổng hƣớng vào (input ) hay hƣớng (output ) Tất các cổng vào AVR điều có tính Đọc – Chỉnh sửa – Ghi ( Read – Modify – write ) sử dụng chúng nhƣ cổng vào số thông thƣờng Điều có nghĩa ta thay đổi hƣớng chân không làm ảnh hƣởng tới hƣớng chân khác Tất chân cổng ( port ) điều có điện trở kéo lên ( pull-up ) riêng, ta cho phép hay không cho phép điện trở kéo lên hoạt động Điện trở kéo lên điện trở đƣợc dùng thiết kế mạch điện tử logic Nó có đầu đƣợc nối với nguồn điện áp dƣơng (thƣờng Vcc Vdd) đầu lại đƣợc nối với tín hiệu lối vào/ra mạch logic chức Điện trở kéo lên đƣợc lắp đặt lối vào khối mạch logic để thiết lập mức logic lối vào khối mạch thiết bị nối với lối vào Điện trở kéo lên đƣợc lắp đặt giao diện hai khối mạch logic không loại logic, đặc biệt hai khối mạch đƣợc cấp nguồn khác Ngoài ra, điện trở kéo lên đƣợc lắp đặt lối khối mạch lối nối nguồn để tạo dòng, ví dụ linh kiện logic TTL có cực góp hở Đối với họ logic lƣỡng cực với nguồn nuôi Vdc giá trị điện trở kéo lên thƣờng nằm - 59 - khoảng 1000 đến 5000 Ohm, tùy theo yêu cầu cấp dòng toàn giải hoạt động mạch Với lôgíc CMOS lôgíc MOS sử dụng điện trở có giá trị lớn nhiều, thƣờng từ vài ngàn đến triệu Ohm dòng rò rỉ cần thiết lối vào nhỏ Trong việc thiết kế vi mạch ứng dụng, IC có ngõ loại cực thu để hở giao tiếp với nhiều IC khác giá trị điện trở kéo lên tƣơng đối nhỏ (khoảng vài trăm Ohm) Bởi lúc hệ số fanout lớn dẫn đến dòng ngõ IC phải lớn để đủ cung cấp cho ngõ vào IC khác, không vi mạch hoạt động chập chờn không hoạt động Mỗi cổng vào vi điều khiển đƣợc liên kết với ghi : PORTx, DDRx, PINx ( x để thay cho A, B,…G ) Ba ghi đƣợc phối hợp với để điều khiển hoạt động cổng, chẳn hạn thiết lập cổng thành lối vào có sử dụng điện trở pullup, v.v Bộ định thời Ta có định thời , định thời định thời 16 bit, định thời định thời bit Dƣới mô tả chi tiết định thời Hình 4.4 Sơ đồ khối định thời Bộ định thời định thời 16 bit, định thời sử dụng 13 ghi liên quan, định thời sử dụng 11 ghi liên quan với nhiều chế độ thực thi khác - 60 - Một đểm cần để ý ghi liên quan tới định thời có nhiều ghi đƣợc chia cho hai định thời, chẳn hạn ghi ETIPR có bít cuối OCF1C đƣợc dùng cho định thời 1, bit lại dùng cho định thời Thậm chí có ghi chia cho định thời 2, chẳn hạn ghi TIMSK có hai bit cuối dùng cho định thời 2, hai bit đầu dùng cho định thời 0, bit lại dùng cho định thời Để tìm hiểu định thời (3) ta cần nắm vững ghi liên quan tới định thời 1(3) chế độ hoạt động định thời 4.3.5 Thiết kế ứng dụng Trong phần này ta sử dụng phần mềm thông dụng CodeVision để lập trình cổng vào cho Atmega16 (Thuộc họ AVR) cách tác động vào ghi PORTxx DDRxx DDRxx : để điều khiển hƣớng liệu chân cổng Khi DDRxx=0 dùng làm cổng vào, ngƣợc lại, DDRxx=1 dùng làm cổng PORTxx: truy cập địa xuất nhập PORTx  Chạy chƣơng trình CodeVision, chọn File -> New -> Project -> OK  Tiếp theo, ta chọn Project: - 61 -  Chọn sử dụng Code Wizard  Cửa sổ Code Vision Wizard  Lƣu lại lựa chọn - 62 -  Lƣu lại file  Soạn thảo mã lệnh: - 63 - 4.4 Họ vi xử lý ARM 4.4.1 Tổng quan Ngày 26/4/1985, mẫu sản phẩm ARM sản xuất công ty kĩ thuật VLSI, SanJose, bang Califonia đƣợc chuyển tới trung tâm máy tính Acorn Cambridge, Anh Quốc Một vài sau, chƣơng trình thử nghiệm thành công Nửa thập niên sau đó, ARM đƣợc phát triển nhanh chóng để làm nhân máy tính để bàn Acorn, tảng cho máy tính hỗ trợ giáo dục Anh Trong thập niên 1990, dƣới phát triển Acorn Limited, ARM thành thƣơng hiệu đứng đầu giới ứng dụng sản phẩm nhúng đòi hỏi tính cao, sử dụng lƣợng giá thành thấp Chính nhờ trội thị phần thúc đẩy ARM liên tục đƣợc phát triển cho nhiều phiên Những thành công quan trọng việc phát triển ARM thập niên sau này:  Giới thiệu ý tƣởng định dạng lệnh đƣợc nén lại (thumb) cho phép tiết kiệm lƣợng giá thành hệ thống nhỏ  Giới thiệu họ điều khiển ARM9, ARM10 „Strong ARM‟  Phát triển môi trƣờng làm việc ảo ARM PC  Các ứng dụng cho hệ thống nhúng dựa nhân xử lý ARM ngày trở nên rộng rãi Hầu hết nguyên lý hệ thống chip (Systems on chip-SoC) cách thiết kế xử lý đại đƣợc sử dụng ARM, ARM đƣa số khái niệm Việc sử dụng trạng thái nhận lệnh-giải mã-thực thi chu kì máy mang tính quy phạm để thiết kế hệ thống xử lý thực Do đó, nhân xử lý ARM đƣợc sử dụng rộng rãi hệ thống phức tạp 4.4.2 Kiến trúc họ ARM lúc đầu đƣợc đặt tên theo công ty Acorn ARM=Acorn RISC Machine (dịch môm na máy sử dụng tập lệnh đơn giản công ty Acorn) Sau này, có thêm nhiều công ty phát triển số lý khác, ngƣời ta thống gọi ARM=Advance RISC Machine Cấu trúc bản:  Cấu trúc load-store  Chỉ lệnh có chiều dài cố định  Cấu trúc lệnh có địa Thay dùng chu kì xung nhịp cho tất lệnh, ARM thiết kế để cho tối giản số chu kì xung nhịp cho lệnh, tăng đƣợc phức tạp cho lệnh đơn lẻ Cũng nhƣ hầu hết xử lý dùng tập lênh RISC khác, ARM sử dụng cấu trúc load-store Điều có nghĩa là: tất lệnh đƣợc thực ghi Chỉ có lệnh copy giá trị từ nhớ vào ghi chép lại giá trị từ ghi vào nhớ có ảnh hƣởng tới nhớ Các xử lý CISC cho phép giá trị ghi cộng với giá trị nhớ, cho phép giá trị nhớ cộng với giá trị ghi ARM không hỗ trợ cấu trúc lệnh dạng „từ nhớ đến nhớ‟ Vì thế, tất lệnh ARM thuộc loại sau:  Chỉ lệnh xử lý liệu: thay đổi giá trị ghi  Chỉ lệnh truyền liệu: copy giá trị từ ghi vào nhớ chép giá trị từ nhớ vào ghi.  Chỉ lệnh điều khiển dòng lệnh: Bình thƣờng, ta thực thi lệnh chứa vùng nhớ liên tiếp, lệnh điều khiển dòng lệnh cho phép chuyển sang địa khác thực thi lệnh, tới nhánh cố định, - 64 - lƣu trở lại địa để phục hồi chuỗi lệnh ban đầu chèn lên vùng code hệ thống 4.4.3 Tập lệnh Tất lệnh ARM 32bit:  Có cấu trúc dạng load-store  Cấu trúc lệnh định dạng địa (nghĩa địa toán hạng nguồn toán hạng đích địa riêng biệt)  Mỗi lệnh thực thi điều kiện  Có lệnh load-store nhiều ghi đồng thời  Có khả dịch bit kết hợp với thực thi lệnh ALU chu kì máy Các lệnh ARM chia thành loại sau: Cấu trúc lệnh có địa Dạng lệnh là: Tên lệnh Địa Địa Địa Đích Địa Ví dụ: ADD d, s1, s2, next_i ;d := s1 +s2 Cấu trúc lệnh có địa chỉ: Dạng lệnh: Tên lệnh Địa Địa Địa Đích Ví dụ: ADD d, s1, s2 ; d := s1 + s2 Cấu trúc lệnh có địa chỉ: Dạng lệnh: Tên lệnh Địa Địa Đích Ví dụ: ADD d, s1 ; d := d + s1 Cấu trúc lệnh có địa chỉ: Dạng lệnh: Tên lệnh Địa Ví dụ: ADD s1 ; accumulator := accumulator + s1 Cấu trúc lệnh không truy cập địa chỉ: Dạng lệnh: Tên lệnh Ví dụ ADD ; top_of_stack := top_of_stack +next_on_stack 4.4.4 Sự thực thi Cũng nhƣ hầu hết xử lý dùng tập lệnh RISC khác, ARM sử dụng cấu trúc load-store Điều có nghĩa là: tất lệnh đƣợc thực ghi Chỉ có lệnh copy giá trị từ nhớ vào ghi chép lại giá trị từ ghi vào nhớ có ảnh hƣởng tới nhớ Các xử lý CISC cho phép giá trị ghi cộng với giá trị nhớ, cho phép giá trị nhớ cộng với giá trị ghi ARM không hỗ trợ cấu trúc lệnh dạng „từ nhớ đến nhớ‟ Vì thế, tất lệnh ARM thuộc loại sau: - 65 -    Chỉ lệnh xử lý liệu: thay đổi giá trị ghi Chỉ lệnh truyền liệu: copy giá trị từ ghi vào nhớ chép giá trị từ nhớ vào ghi. Chỉ lệnh điều khiển dòng lệnh: Bình thƣờng, ta thực thi lệnh chứa vùng nhớ liên tiếp, lệnh điều khiển dòng lệnh cho phép chuyển sang địa khác thực thi lệnh, tới nhánh cố định, lƣu trở lại địa để phục hồi chuỗi lệnh ban đầu đè lên vùng code hệ thống 4.4.5 Thiết kế ứng dụng Trong phần tìm hiểu phƣơng pháp lập trình hợp ngữ với ARM Xét chƣơng trình sau: AREA HelloW,CODE,READONLY ;Khai bao vung code SWI_SwiteC EQU &0 ;Ki tu xuat o R0 SWI_Exit EQU &11 ;Ket thuc chuong trinh ENTRY ;Diem bao hieu vao chuong trinh START ADR R1,TEXT ;R1 chi den vung dia chi cua TEXT LOOP LDRB R0,[R1],#1 ;R0:=[R1];R1:=R1+1 CMP R0,#0 ;R0 chi toi gia tri cuoi hay chua SWINE SWI_WriteC ;Neu chua ket thuc in BNE LOOP ;thi quay nguoc lai vong lap SWI SWI_Exit ;Quay ve lai chuong trinh quan ly TEXT ="Hello World",&0a,&0d,0 ;Khai bao doan Text END ;Chuong trinh ket thuc Cách tổ chức thực thi tập lệnh ARM: Cách tổ chức nhân ARM không thay đổi nhiều khoảng 1983-1995:đến ARM7-sử dụng dòng chảy lệnh sử dụng tác vụ Từ 1995 trở sau, xuất vài nhân ARM đƣợc giới thiệu có dòng chảy lệnh sử dụng tác vụ Hình 4.5 Chỉ lệnh chu kì máy sử dụng dòng chảy lệnh có tác vụ - 66 - Hình 4.6 Dòng chảy lệnh tác vụ Thời gian để xử lý thực thi chƣơng trình là: Trong CPI số xung nhịp trung bình cần cho lệnh, Ninst số lệnh thực thi chƣơng trình, fclk tần số xung nhịp Với công thức trên, ta có cách để giảm thời gian thực thi chƣơng trình: + Tăng tần số xung nhịp: điều đòi hỏi trạng thái tác vụ dòng chảy lệnh đơn giản, và, đó, số tác vụ tăng thêm + Giảm CPI: điều đòi hỏi lệnh cần nhiều dòng chảy lệnh với tác vụ không đổi, tác vụ cần đơn giản hơn, kết hợp lại với ARM đƣa cấu trúc dòng chảy lệnh có tác vụ, với cách mô tựa nhƣ cấu trúc von Neumann, với vùng nhớ liệu chƣơng trình riêng biệt Từ cấu trúc lệnh có tác vụ đƣợc chia nhỏ lại thành tác vụ làm cho chu kì xung nhịp thực công việc đơn giản trạm, cho phép tăng chu kì xung nhịp hệ thống Sự tách rời nhớ chƣơng trình nhớ liệu cho phép giảm đáng kể tài nguyên chiếm lệnh chu kì máy Câu hỏi cuối chƣơng Trình bày đặc điểm họ vi xử lý AT89C Nêu kiến trúc chung họ vi xử lý AT89C Trình bày lệnh logic AT89C Trình bày ghi Timer vi xử lý AT89C Trình bày chế độ hoạt động Timer AT89C Trình bày nhớ cổng họ vi xử lý AVR Nêu bƣớc để lập trình cho AVR với CodeVision Trình bày đặc điểm lệnh vi xử lý AVR Phân tích khác dòng chảy lệnh có tác vụ dòng chảy lệnh có tác vụ - 67 - ĐỀ THI THAM KHẢO Đề số Câu 1: Trình bày phƣơng pháp biểu diễn kiến trúc hệ thống nhúng Câu 2: Phân tích đặc điểm, chức hệ thống bus địa hệ thống nhúng Câu 3: Trình bày trình điều khiển ngắt Câu 4: Nêu bƣớc lập trình cho AVR với CodeVision Đề số Câu 1: Thế Soft Real Time System, cho ví dụ Câu 2: Nêu cấu tạo, đặc điểm loại nhớ RAM Câu 3: Trình bày đặc điểm hệ điều hành hệ thống nhúng Câu 4: Trình bày chế độ hoạt động Timer vi xử lý AT89C Đề số Câu 1: Thế Hard Real Time System, cho ví dụ Câu 2: Nêu cấu tạo, đặc điểm loại nhớ ROM Câu 3: Nêu phân tích điều kiện cần RMS Câu 4: Nêu kiến trúc chung họ vi xử lý AT89C Đề số Câu 1: Trình bày mô hình phát triển hệ thống nhúng Spiral Câu 2: Nêu chế quản lý nhớ với hệ thống nhúng Câu 3: Thế tiến trình, trình bày quản lý tiến trình hệ thống Câu 4: Nêu đặc điểm tập lệnh vi xử lý ARM Đề số Câu 1: Trình bày mô hình phát triển hệ thống nhúng Water Fall ƣu khuyết điểm so với phƣơng pháp truyền thống Câu 2: Nêu ƣu điểm phƣơng pháp vào song song Câu 3: So sánh hệ thống đơn tiến trình hệ thống đa tiến trình Câu 4: Trình bày hoạt động cổng vi xử lý AVR Đề số Câu 1: Tại ta sử dụng phƣơng pháp phân lớp để biểu diễn kiến trúc hệ thống nhúng? Câu 2: Trình bày đặc điểm phần cứng hệ thống nhúng Câu 3: Thế MiddleWare software, Application software? Cho ví dụ Câu 4: Nêu thực thi lệnh vi xử lý ARM GỢI Ý ĐÁP ÁN Đề số Câu 1: Trình bày cấu trúc đƣợc dùng để biểu diễn kiến trúc hệ thống nhúng Gợi ý  Module - 68 -  Component and Connector  Allocation Câu 2: Phân tích đặc điểm, chức hệ thống bus địa hệ thống nhúng Gợi ý  Vị trí  Độ rộng bus  Cấu tạo  Nhiệm vụ Câu 3: Trình bày trình điều khiển ngắt Gợi ý  Ngắt Level Triggered  Ngắt Edge Triggered  Các chức trình điều khiển Câu 4: Nêu bƣớc lập trình cho AVR với CodeVision Gợi ý Trình bày bƣớc làm việc với Code Vision Wizard Code Vision Đề số Câu 1: Thế Soft Real Time System, cho ví dụ Gợi ý: Trình bày hệ thống thời gian thực sai khác thời gian không gây hậu lớn tài sản, ngƣời Câu 2: Nêu cấu tạo, đặc điểm loại nhớ RAM Gợi ý  Trình bày loại SDRAM, DRAM …  Cấu tạo ô nhớ đặc điểm  Phƣơng pháp truy cập đến phần tử nhớ Câu 3: Trình bày đặc điểm hệ điều hành hệ thống nhúng Gợi ý Câu 4: Trình bày chế độ hoạt động Timer vi xử lý AT89C Đề số Câu 1: Thế Hard Real Time System, cho ví dụ Gợi ý Trình bày hệ thống mà việc sai khác thời gian dẫn đến hậu nghiêm trọng tài sản ngƣời Câu 2: Nêu cấu tạo, đặc điểm loại nhớ ROM Gợi ý  Trình bày loại ROM …  Cấu tạo ô nhớ đặc điểm  Phƣơng pháp truy cập đến phần tử nhớ Câu 3: Nêu phân tích điều kiện cần RMS Gợi ý - 69 -  Trình bày đơn sử dụng  Trình bày đa sử dụng Câu 4: Nêu kiến trúc chung họ vi xử lý AT89C Gợi ý  Sơ đồ khối  Mô tả khối  Mô tả chân Đề số Câu 1: Trình bày mô hình phát triển hệ thống nhúng Spiral Gợi ý  Sơ đồ khối  Trình bày phase mô hình  So sánh với mô hình warterfall Câu 2: Nêu chế quản lý nhớ với hệ thống nhúng Gợi ý  Trình bày phân cấp nhớ hệ thống nhúng  Trình bày Memory Management Câu 3: Thế tiến trình, trình bày quản lý tiến trình hệ thống Gợi ý  Định nghĩa chƣơng trình, tiến trình  Đơn tiến trình  Đa tiến trình Câu 4: Nêu đặc điểm tập lệnh vi xử lý ARM Gợi ý  Kích thƣớc lệnh  Dạng lệnh  Kiểu thực thi Đề số Câu 1: Trình bày mô hình phát triển hệ thống nhúng Water Fall ƣu khuyết điểm so với phƣơng pháp truyền thống Gợi ý  Sơ đồ khối  Trình bày phase mô hình  So sánh với mô hình Spiral Câu 2: Nêu ƣu điểm phƣơng pháp vào song song Gợi ý  Tốc độ  Cấu tạo dây  Kết nối với thiết bị ngoại vi Câu 3: So sánh hệ thống đơn tiến trình hệ thống đa tiến trình Gợi ý - 70 -  Độ phức tạp thuật toán quản lý  Hiệu suất hệ thống Câu 4: Trình bày hoạt động cổng vi xử lý AVR Gợi ý  Vị trí, cấu tạo  Các ghi  Các chế độ hoạt động Đề số Câu 1: Tại ta sử dụng phƣơng pháp phân lớp để biểu diễn kiến trúc hệ thống nhúng? Gợi ý  Vị trí, cấu tạo  Các ghi  Các chế độ hoạt động Câu 2: Trình bày đặc điểm phần cứng hệ thống nhúng Gợi ý  Trình bày khác hệ thống thƣờng hệ thống nhúng  Các hạn chế nhớ  Hạn chế kích thƣớc  Hạn chế lƣợng  … Câu 3: Thế MiddleWare software, Application software? Cho ví dụ Gợi ý  Trình bày vị trí, chức MiddleWare  Trình bày vị trí, chức Application  So sánh hai kiểu phần mềm Câu 4: Nêu thực thi lệnh vi xử lý ARM Gợi ý  Trình bày lệnh xử lý liệu  Trình bày lệnh truyền liệu  Trình bày lệnh điều khiển dòng - 71 -

Ngày đăng: 28/11/2016, 02:57

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

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

Tài liệu liên quan