Để kiểm soái được các thông sỗ này một cách tự động boặc bản tự động cần có sụ can thiệp của các thiết bị điện tử Với mục đích nghiên cứu, triển khai môi trưởng phát triển hệ thẳng nhủn
Trang 1
BỘ GIÁO DỤC VẢ ĐẢO TẠO
TRUONG BAT HOC BACH KHOA HA NOT
LUAN VAN THAC si KHOA HOC
'NGÀNH: CÔNG NGHE THONG TIN
NGHIEN CUU, TRIEN KHAI MOT TRUONG
PHAT TRIEN HE THONG NHUNG TRONG BAI TOAN
ĐIỂU KHIỂN NHÀ KÍNH
TRỊNH THỊ PIÚ
Người hướng dẫn khoa học: T§ CAO TUẦN DŨNG
HA NỘI 2010
Trang 2LOL CAM BOAN
Tôi xin cam đoan luận văn “Nghiên cứu, triển khai mới trường phát triển hệ
thống nhúng” lả đo tôi thực hiên đưới sự hưởng đẫn của TS Cao Tuần Dũng —
Khơa Công nghệ thông tin, Irưởng Đại học Trách khoa Tà Nội Mợi trích dẫn và tai liệu tham khảo được sử dụng trong luận văn đều được lôi chỉ rõ nguồn gốc
Tỏi xin hoàn loàn chịu trách nhiệm vẻ lời cam đoan trên
Ha Ndi, ngày 2 thang 4 nim 2010
Tác giả luận văn
Trinh Thị Phú
Xác nhận của giáo viên hướng dẫn về múc đô hoản thành của luận văn tốt nghiệp
và cho phép bảo vệ
Hà Nội, ngày tháng 4 năm 2010
Giáo viên hướng dẫn
TS Cao Tuần Dũng
Trang 31.1.4 Tổng quan về kiên trúc phẩi
1.2 Hệ thống thời gian thyrc (Real-Time Systems)
2.1 Ví điều khiển
2.2 Kiến trúc của vì điển khiễn AVR
3.2.1 Tả chức của AVR
3 Hoại động của AVE,
3.3 Thanh ghỉ trạng thải SREG (STATUS REGISTER) 46
3.3 Bộ truyền nhận đữ li
3.3.1 Truyền thông nổi lá
4.3.3 Truyén thông nếi
nối tiếp LSART
Trang 4
ADC trén AVR - 34.1 Chuyên đãi dữ Tiện trang tự (analo) sang dữ liệu số (digital) 59
2.1.2, Chuyển đổi ADC trên AYR
2.5 Quy trình thiết kế một mạch ứng dụng dùng vi điển khiển
3.2 Dido khlén mai tririmg cho nhà kính
3.3.1 Mô tà bài toán khi kinh
3.1.3 Kiên trúc hệ thé
3.3.2 Ghép nổi các thiết bị cảm biến trang hệ thống vỏi vị điều khiển BO 3.2.3 Ghép nổi với các thiết bị điều khiễn ăc cu ehieeerrreoeoroDÐ
3.3 Diên khiển nhiệt độ mãi trường nhá Kính
3.3.1 Các khối chúc năng trong vỉ điền khiển
3.1.3 Giao tiếp giữa PC và ví điển khin
3.4 KẾt chương
KÉT LUẬN,
TÀI LIỆU THAM KHẢO
Trang 5
DANH MUC CAC TU VIET TAT
STT | Từ viết tắt | Thuật ngữ Tiếng Anh “Thuật ngữ Tiếng Việt
2 BOD pinay coded Decinat | Thar phan tye ma hoants phan
3 CPU | Central Processing Unit | Don vi xt ly tring tm
Digital to Analog 3 biển đổi số
4 pac | oo verter Bộ biển đổi số sang tương tự
53 | BEPROM |ProgramiableRead | PO nHớKOM có th6 Jey trintiva
8 ISR | Interrupt SubRoutine | Đoạn chương trình xử lý ngắt
Memory
Một tiêu chuẩn quy định giao
không đỏng bộ Universal
11 | UART |Asynchrounous Bộ truyền nhận không đồng bộ
Trang 6DANH MUC BANG BIFU
Bang 2.1: Chon kiém tra parily
Bang 2.2: D6 dai dé lién truyén
Bang 2.3: Tinh téc 43 band
Bang 2.4: Một số tốc đô baud mẫu
Bang 2.5: Chọn điện áp tham chiều
Bảng 2.4: Lệ số chia xung nhịp cho ADC
Bảng 2.8: Nguồn kích ADC trong chế độ Auto Trigger
Trang 7
DANH MỤC HÌNH VE
Tình 1.1: Cấu trúc của các hệ thông thời gian thực I8
Tình 2.14: Một hệ thông phát triển dựa trên vi điều khiển 68
Hinh 2.15: Giao điện chương trình CodevisionAE «.cceoccc.Ð
Hình 2.16: Giao điện phần mềm mỗ phỏng, Proteus
Hình 2.17: Giao điện phần mềm Virtual Serial Port Driver
Hình 2.18: Giao diện của phân mềm LabVIEW
Tình 3.4: Mạch mô phỏng việc điển khiển = thang số nhiệt độ, đông thời gũi giả
1rị này lên PC 86
THình 3.8: Ghép nối cảm biển nhiệt độ với vi điều khiến 8
Tình 3.6: Ghép nổi vi điều khiển với các thiết bị mô phỏng đâu ra 87
Hình 3.8 Giao diện chương trình giao tiếp giữa PC vả vị điều khiển 92 Hình 3.9: Khối chương trình trong LaUIEW coceeesooeeesooeoo.Đ8
Trang 8Tình 3.10: Khái khai báo các thông số giao tiếp công CƠM trong LabVIEW 93 Tình 3.11: Khối đọc đữ Hệu và hiển thị lên để thị 94
Hình 3.12: Kết quả thực hiện giao tiếp giữa PC và vị điều khiển 95
Trang 9MỞ ĐẦU
Xã hội cảng phát triển, công nghệ thông tin cảng giữ vị trí quan trọng,
trong déi sống và kỹ thuật Cùng với xu hướng phải triển của công nghệ thông,
trn, việc xây dựng các hệ thông điều khiển trỏ thành một vẫn đề tắt yến, một nh
cầu cấp thiết, đặc biệt đối với những tng dụng là các hệ thông phục vụ đời sống,
Nước ta là một nước nông nghiệp nên vai trò của nông nghiệp có ý nghĩa
vô cùng quan lrọng trong việc làm liên để đề thúc đây nên công nghiệp hóa, hiện
đại hỏa phải triển Ngược lại công nghiệp hỏa, hiện đại hỏa sẽ làm thay đổi cách thức lao động và trang thiết bị mảy móc Irong nông nghiệp, để cho ra xã hội những sản phẩm nông nghiệp phong phú, đa đạng và đảm bảo chất lượng, Khỏ
khăn lớn nhất của ngành nông nghiệp nước ta là thời thiết thất thường, cáo sản phẩm nẻng nghiệp không được bảo vệ trước yếu tổ thiên nhiên Vì vậy mô hình
nhà kính, nhà lưới được áp dụng trong nêng nghiệp để nâng cao sản lượng và
chất lượng của các sản phẩm nông nghiệp, giúp vượt qua các trở ngại về mặt khí
hận Một trong những mục đích chính của nhà kính là kiểm soát được các thêng,
số như nhiệt độ, đỗ âm, ảnh sáng cha phù hợp với yêu cân sinh trrởng của cây
trồng Để kiểm soái được các thông sỗ này một cách tự động boặc bản tự động
cần có sụ can thiệp của các thiết bị điện tử
Với mục đích nghiên cứu, triển khai môi trưởng phát triển hệ thẳng nhủng tác giả lụa chọn dé tai nay voi mong muốn có một cái nhìn tổng quan về việc phat triển hệ thống nhúng và bước đầu thục hiện triên khai áp dụng cho việc điển
khiển các thông số cho môi trường nhả kính
Luận văn được trinh bảy trong ba chương với nôi dung mỗi chương như sau
Chương I Trình bày các nội đung tìm hiểu về hệ thống nhúng, hệ thống thời gian thực, phản mềm nhúng, các vẫn đề vẻ thiết kế và phát triển hệ thống,
nhúng, những khác biệt so với vẫn để thiết kế vả phát triển ửng đụng,
Trang 10Tiếp theo, Chmong 2 Trinh bay cau tric ting quat vé vi dién khién AVR,
1à một họ vi điểu khiển do hãng Atmel sản xuất, AVR là chip vi digu khién 8 bits với cấu trúc tập lệnh đơn giản hóa _ RISC (Reduced Instruction Set Computer),
một kiểu cấu trúc đang thể hiện tru thể trong các bộ xử li Dỗng thời giới thiệu
một số công cụ để lảm việc với vi điều khiển
'Trong Chương 3, Trình bảy tổng quan vé mdi trường nhà kinh vả việc điều khiển các thông s6 cho ma trường nhà kinh có thể áp dụng trang mô hình
thục nghiêm đổi với việc nuôi trồng các cây nông nghiệp Một số kết quá đạt
được trg việc điều khiển [hông số nhiệt độ của môi Irường nhà kính
Tôi xin tràn trọng cảm ơn Việu Đảo tạo 3au dại học - Trường Đại học
Bách Khoa Hả Nội, các thấy cỗ giáo, cũng toàn thể các bạn đồng, nghiệp Đặc
biệt tôi xia chân thành cảm ơn PỚ8 T8 Nguyễn Ngọc Binh, TS Cao Tuần
Tũng người để trực tiếp hưởng dẫn và cho tôi những ý kiến quý bán để tôi od thé
hoàn thành luận văn này,
Chắc chắn, luận văn can có những thiểu sói trong nội đung cũng như
trong trỉnh bày Tác giả của luận văn rắt mong nhận được sự đóng góp ý kiến của các (hây cỗ giáo và của các anh, chị học viền.
Trang 11CHƯƠNG 1: TONG QUAN VE HE THONG NHUNG
1.1 11é théng nhing (Embedded System)
1.1.1 Khải niệm
Chúng ta có thể hiểu hệ thống nhúng là một phân hệ thống xử lý thông Tỉnh nằm trong sản phẩm, tạo (hành một phân của hệ thông lớn hơn và thực hiện xột số chức năng của hệ thông Nói một cách đơn giản khi một hệ tính toán được nhũng vào trong một sản phẩm hay một hệ thông một cách hữu cơ và thực hiện
một số chức năng cụ thể của hệ thông thì ta gọi đó là một hệ thống nhủng [1]
Hệ thông những thường được thiết kế để thực hiện một chức năng chuyên
biệt nào đó Khác với cáo máy tinh đa chức năng, chẳng hạn như máy tỉnh cá
nhân, một hệ thẳng nhúng chỉ thực hiện một hoặo một vải chức năng nhất định,
thưởng đi kém với những yêu cầu eu thể và bao gằm một số thiết bị máy móc vá
phần cứng chuyên dựng ma ta khéng tim thay Irong một máy tỉnh đa năng nói chưng Vì hệ (hồng chỉ được xây đựng 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à chỉ phú sân xuất
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 Hệ thông, nhủng rất đa dạng, phong phủ về chủng loại Đó cỏ thẻ lả những thiết bị cằm tay nhỏ gọn như đồng hỗ kĩ thuật số vả máy chơi nhạo MP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy hoặc hệ thẳng kiểm soát các
máy nẵng lượng hại nhân Xét về độ phức tạp, hệ (hống nhúng cỏ thế rất đơn giên với một vi điểu khiển hoặc rất phúc lạp với nhiễu đơn vi, các thiết bị ngoại
vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn
Các hệ nhúng được tỉch hợp trong, các thiết bị đo lường điều khiển và các
sản phẩm cơ điện tử tạo nên đâu não và linh hỗn của sản phẩm
Trong các hệ nhúng, hệ thẳng điều khiến nhúng đỏng một vai trả hết sức
quan trọng.
Trang 121Iệ đ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, diễu khiển một qửa trình
công nghệ đập ủng các yêu cản đặ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 tin hiệu điểu khiển
cho các cơ cầu chấp hành
1.1.2 Các vi dụ
Ngày nay hệ thống nhúng đã trỏ thành một khuynh hướng giải pháp được
ap đụng rộng rãi trong công nghệ kỳ thuật, kết họp toản điện cả phần cửng và phần mềm Trong mỗi hệ nhúng đều có những phân mang tính đặc trưng và riêng biệt về thiết kể phần cửng và phân mềm Sự khác biệt này là kết quả của sự
thỏa hiệp về giải pháp thiết kế nhằm tưu tiên thỏa mãn các yêu câu vả thực hiện
chức năng cụ thể của hệ nhúng
Các hệ thống nhúng điển hình
Không gian vũ trụ Các hệ thông hàng hãi, các hệ thông liếp đất tự động
điều khiển bay, điều khiển động cơ, thám hiểm không
gian
May moc tự động Điểu khiến phun nhiên liệu, điểu khiển môi trưởng
hành khách, các hệ thông kiểm tra khỏa, diểu khiển tái
Cac thiet bi ngoai vi May in, may quel, ban phim, man hinh, modem, oc 5
dia cig, cdc 6 dia CD-ROM
“Trong công nghiệp
"Trong nông nghiệp
Điển khiến thang mây, cáo hệ thông giám sãt, robols,
"Nhà kính vi tinh hỏa,
Trang 13
“Thiết bị do đạc Tập hợp đữ liệu, máy hiện sóng, máy phát tín hiệu,
may phan tich tín hiệu, cung cấp năng lượng,
Trong y tế Các hệ thống ảnh hóa (như XRAY, MRI va siéu 4m),
các máy theo đấi bệnh nhân, đo nhịp lim,
Các thiết bị văn phòng | Máy FAX, máy copy, điện thoại, máy chấm công,
"Thiết bị cá nhàn Personal Digital Assistants (PDAs), pagers, cell
phones, wrist watches, video games, portable MP3 players, GPS,
Hệ thông nhúng thường có một số đặc điểm chung như sau:
« Các hệ (hổng nhủng đượ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ề tính hoạt động 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ển chỉ 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
© Phan mém duoc viết cho các hệ thống nhúng được lưu trữ lrơng các
chúp bệ nhở chỉ đọc (read-only mernorv) hoặc bộ nhớ flash chứ không phải
lả trong một ổ đĩa Phần mềm thưởng chạy vỏi số tải nguyên phần cứng
hạn chế: không có bản phim, mản hình hoặc có nhưng với kích thước nhỏ,
bộ nhớ hạn chế
Một hệ thông nhúng cần có một bộ xủ lý và bộ nhớ Hẳu hết các hệ thông,
nhúng không có các phân sau:
Trang 14-Ban phim (keyboard) Một vài hệ thông có thể có một it nút bám cho
người sử dụng
-Mén hinh (screen) Nhiều hệ thông, đặc biệt trong, các sản phẩm người
tiểu ding, cỏ một man hinh tinh thé léng hiển thị các thông số giúp người
sử dụng theo đối dể dàng hơn
-O đĩa (disk drixe) Chương trình được lưu trữ trong bộ nhớ, và hần hất
các hệ thông nhúng không cần thiết phải lưu trữ nhiều dữ liện một cách cố
hệ điền hành trong các thiết bị để bản Đối với các hệ thẳng don giàn, thiết bị
nhủng sử đụng nút bẩm, đèn LED và hiển thị chí cỡ nhỏ hoặc chỉ hiển thị số, thưởng đi kèm với một hệ thông, menu đơn giản [5]
Còn trong một hệ thống, phúc tạp hơn, một mản hình đỗ họa, cảm ứng,
hoặc có các nút bẩm ở lễ mmân hình cho phép thực hiện các thao tác phức tap ma
tối thiểu hóa được khoảng không gian cản sử dụng; ý nghĩa của cáo nút bắm có thể thay đổi theo màn hình và các lựa chọn Các hệ thống nhing thường có một
màn hình với mét nut bam dang cân điều khiên Goysuck button) Su phát trển mạnh mẽ của mạng internet đã mang đến cho những nhà thiết kế hê nhủng một
Tựa chọn mới là sứ dụng một giao điện web thông qua việc kết nỗi mạng Điều này có thể giúp tránh được chí phì cho những màn hình phức tạp nhưng đồng thời vẫn cung cấp kh năng hiển thi và nhập liệu phúc tạp khi cân đến, thông qua
một máy tính khác Điều nảy là hết sức hữu dụng đổi với các thiết bị điều khiển
tử xa, cải đặt vĩnh viễn
Trang 15113.2, Kién tric CPU
Các bộ xử lý trong hệ thống nhúng có thể được chia thành hai loại: vi xử
ly va vi điều khiển Các vi điển khiển thường cá các thiết bị ngoại vi được tịch
họp trên chip nhằm giảm kích thước của hệ thông, Có rất nhiều loại kiến trúc
CPU được sử đụng trong thiết kế hệ những như ARM, MIPS, Coldfire/68k,
PawerPC, x86, PIC, 8051, Almel AVR, Rencsas H8, SH, V850, FR-V, M32R,
780, 78 Điểu này trái ngược với các loại máy linh để bản, thưởng bị hạn chế với một vài kiến trúc máy tính nhất định, Các hệ thống nhúng có kich thước nhỏ
và được thiết kế để hoạt động trong môi tang céng nghiệp thường Iya chon PC/104 va PC/104++ lam nền tảng Những hệ thống này thường sử dung DOS,
Linux, NetBSD hoặc cáo hệ điều hành nhúng thời gian thục như QNX hay
‘VxWorks Con cde
ệ thông nhúng có kích thước rất lớn thường sử dụng một cắn
hinh théng dung 14 hé théng on chip (System on a chip — SoC), mét bang mach tích hợp cho một ting dung cu thé (an application-specific integrated circuit —
ASIC) San đỏ nhân CEU được mua và thêm vào như mét phan cia thiél ké chip
Mật chiến lược lương tự là sử dung FPGA (fickd-programmable gale array) va lập trình chơ nó với những thành phần nguyên lý thiết kế bao gôm cả CPU [5]
413.3 Thiết bị ngoại ví
11ệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vị, ví
dụ như
* Serial Communication Interfaces (SCI): R8-232, R8-422, R§-485
© Synchronous Serial Communication Inierfacc: I2C, ITAG, SPI, SSC
và ESSI
© Universal Scrial Bus (USB}
» letworks: Controller Area Network, LonWorks
© Bé dinh thai: PL1(s), Capture/Compare va Time Processing Units
® Discrete 10: General Purpose Input/Output (GPIO)
Trang 161.1.3.4 Công cụ phút triển
Tương tự như các sản phẩm phần mềm kháo, phần mềm hệ thông nhúng
cũng được phát triển nhờ việc sử dụng các trình biên địch (compilers), chương trình địch hợp ngữ (assembler) hoặc các công cụ gỡ rồi (đebusgers) Tuy nhiên, các nhà thiết kế hệ thống nhúng có thể sử dụng môi số công cụ chuyên dụng như
» _ Bộ gỡ rối mạch hoặc các chương trình mô phỏng (emulator)
«Tiện ích để (hẻm các giả Irị checksum hoặc CRC vào chương trinh, giúp hệ thông nhúng có thể kiểm tra tính hợp lệ của chương trình đó
œ_ Đổi với các hệ thẳng xử lý tin hiệu số, người phát triển hệ thắng có thể
sử đụng phẩn mém werkbench như MahCad hoặc Mathcmatica để mô phông các phép toán
+ _ Các trình biển dịch và trình liên kết (linkar) chuyên dụng được sử đụng
để tôi mm hóa một thiết bị phần cứng
® Một hệ thống nhủng có thể có ngôn ngữ lập trình và công cụ thiết kế
riêng của nó hoặo sử đụng và cải tiến từ một ngôn ngữ đã có sẵn
Các công cụ phần mềm có thể được tạo ra bởi các công ty phân mềm
chuyền dựng về hệ thẳng nhúng hoặc chuyển đất từ các công cụ phát triển phản mễm GNU Đôi khi, các công en phát triển đảnh cho máy tính cả nhân cũng được
sử đựng nêu bệ xử lý của hệ thống nhúng đó gần giỗng với bộ xử lý của một máy
TC thông dụng
13.5 Dé tin cap
Các hệ thống nhủng thường nằm trong các cỗ máy được kỳ vọng lả sẽ
chạy hàng năm trời liên tục mà không bị lỗi hoặc có thê khôi phục hệ thống khi
gặp lỗi Vì thể, các phần mềm hệ thẳng nhúng được phát triển và kiểm thử một
cách cẩn thận hơn là phân mềm cho my tính cả nhân Mgoài ra, các thiết bị rời không đảng lin cậy như ỗ đìa, công tắc hoặc nút bấm thưởng bị hạn chế sử dụng
‘Vigo khỏi phục hệ thông khi gặp lỗi có thể được thực hiện bằng cách sử dụng các
Trang 17ky thuat nhu watchdog timer — néu phan mém khéng đều đặn nhận được các tín
hiện watchdog định ki thì hệ thông sẽ bị khởi động lại
Một số vấn để cụ thể vẻ độ tin cậy như:
«_ TIệ thông không thể ngimg để sửa chữa một cách an toàn, ví dụ như ở
các hệ Ihỗng không gian, hé thing day cép dudi day biển, các đèn hiệu dẫn đường, Giải pháp đưa ra là chuyển sang sử dụng các hệ thỗng cơn dự trữt hoặc các phần mềm cung cấp một phản chức năng,
* 118 thẻng phải được chạy lên tục vì tính an toản, ví dụ như các thiết bị
dẫn đường máy bay, thiết bị kiếm soát độ an toàn trang các nhà máy hoa
châi, Giải pháp đưa ra là lựa chọn backup hệ thông
e _ Nếu hệ thông ngừng hoạt động sẽ gây tốn thất rất nhiều tiền của ví đụ
như các địch vụ buôn bản tự động, hệ thống chuyển tiến, hệ thẳng kiếm soát Irong các nhả máy
1.1.4 Tẵng quan về kiến trúc phan mém
Yếu tổ quan trọng nhất để xác định kiểu kiến trúc thích hợp nhất cho mỗi
hệ thống được đua ra lả cách điều khiển cần phải có để đáp ứng trên hệ thống
Dạt được đáp ứng tốt la khó, phụ thuộc vào không chỉ đáp ứng, tuyệt đổi các yêu
cầu thời gian mà còn phụ thuộc vào tốc độ của bộ vi xử lý và cảc yêu cầu xử lý
khác Một hệ thống it thực hiện các yêu câu đáp ứng thời gian của nó và đặc biệt không chặt chế có thể được viết với một kiến trắc rải đơn giản Môi hệ thống phải đáp ứng nhanh chóng nhiều sự kiện khác nhan và có nhiều yêu cân xử lý khác nhau, tât cả các giới hạn và các mức ưru tiên khác nhau, sẽ đỏi hói một kiến trúc phúc tạp hon
Ở đây có 4 kiến trúc:
« Round-Robin: Kiên trúc Round-Robin chỉ có duy nhất một ưa điểm
sơ với các kiên trủc khác là đơn giản, trong khi có một số vận để làm cho
nó không thích hợp với nhiễu hệ thống,
Trang 18Kiến trúc Round-Rebin chỉ có thể thích họp cho các thiết bị rất don
giản như đồng hỗ số và các lò vi sóng và không thể thích hợp cho các hệ
thống khac
© Round-Rabin với các ngắt (Round-Rohin-with-Inlermpis): thiểu sỏi
sơ bản của kiểu kiển Irúc nảy là lÂt cá các mã lệnh tác vụ thực thì ở cùng một mức ưu liên (nhưng hơn kiến trúc Round-Robin là không đơn giân
quá)
* Function-queue-scheduling: Kién trie function-queue-scheduling 1A
một kiến trúc cũng không phức tạp hơn nhiều
ệ điều hánh thời gian thực (real-time operating): Sự kháo nhau giữa
hệ điểu hành thời gian thực và các hệ thông trước là:
- Việc cần thiết bảo hiệu giữa các trình ngắt và các mã lệnh lac vụ được xử lý bằng hệ điều bảnh thời gian thực
- Không lặp trong mã lệnh quyết định cản phải thục hiện tiếp theo Mã lệnh bên trong hệ điều hảnh thời gian thực quyết dịnh
kiểu hàm mã lệnh tác vụ nên thực hiện Hệ điều hành thời gian thực biết về nhiều trinh con mã lệnh-táe vụ khác nhau vả sẽ thực hiện
tất kỳ một trình con khẩn cắp nhất trong số chúng tại thời điểm đã
lêu hành thời gian thực
là bản thân hệ điều hành thởi gian thực sử dụng một lượng thời
gian xử lý nhất dịnh Sẽ thu được đáp ứng tết hơn nếu chịu phí tôn
vẻ thông lượng,
Trang 191.2 Hệ thống thời gian thực (Real-Time Systems)
1.2.1 Khái niệm
Một hệ thông thời gian thực có đặc điểm sau
“Thực hiện được một hoặc một số nhiệm vụ (Iask) trong một thởi gian qui
định Đảm bảo được dù có bắt kỳ điều gi xảy ra đổi với hệ thông thì số nhiệm vu
trên vẫn hoàn thành trong đúng thời gian đó Cần nhớ hệ RTS gồm: Phan mem
RT (real-ime software hoặc real-time module hay RT toolkit) va Phan cimg RT (real-time hardware) [5]
Một ví du kinh điển về một RTS: túi khi (airbag) trên xe hơi là mét RTS
Vi khi cỏ cảm biển tai nan được kích hoạt Tủi khi sẽ được bung ra trong một khoảng thời gian rất ngắn (được định trước bởi kỹ sử lập trình) Giả sử nêu túi
khí không là một RTS thì tải xế sẽ chết trước khi tủi khí bung Ví dụ khác vẻ RTS là bộ điều khiển đánh lửa trong động cơ xăng, Tia lửa cản được điều khiển
chính xác ở chu kỳ đốt (tức sau khi chu kỷ hút đã hút hồn hợp kỷ vả xăng vào
Tôi, tới chủ kỳ nén, nẻn hòa khí xăng-khí lên áp xuât cáo, thi tia lửa mới được
phát ra bởi bô điều khiển RTS) Nếu không đúng thời điểm nảy thì động cơ sẽ
không hoạt động được hoặc hoạt đông với hiệu suất rất thấp
Như vậy chúng ta có thể xem, hệ thông thời gian thực lả một hệ thông mả
sự hoạt động tin cây của nó không chỉ phụ /huộe vào sự chỉnh
Trang 20Như vậy, vấn để của lập trình thời gian thục chính là việc thiết kế hệ
thống sao chơ nó cỏ thẻ tiếp nhận một cách chính xác các rang buộc về mặt thởi gian trong suốt quả trình cáo sự kiện ngẫu nhiên và không đẳng bộ xây ra
1.2.2 Các đặc đim của hệ thông thời gian thực
Mật hệ thống thời gian thực có cáo đặc trưng tiêu biểu sau:
«© Rang buge thoi gian (túng constrainst) Đặc trưng đâu tiên của hệ thẳng, thời gian thục là rằng buộc thời gian hay tỉnh phản ứng nhanh Hệ thống,
phải xử lý thông tin một cách nhanh chong để có thể đưa ra kết quả một
cách kịp thời Một chương trình không những phải đưa ra kết quả tinh toán đứng mà còn phải đưa ra kết quả đúng thời gian Hay nổi một cách khác, tính đúng đắn của một chuơng trình không chỉ phụ thuộc vào kết quả tỉnh toan logic mà còn phụ thuộc vào thời gian mà kết quả nảy được
sinh ra Tổng quát hơn, phần mềm thời gian thực phải thỏa mãn các khẳng, định (assertion) thời gian, khẳng định này bao gồm cả quan hệ đối với thời gian tuyệt đổi và thời gian tương đổi Cách xác nhận đơn giản nhất và phô biến nhất là một mắc tới hạn (thời hạn) - giới hạn về thời gian trơng đối
hoặc tuyệt đốt mả một tính toán phải hoàn thành
© Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm thường không biết trước Vi dụ, sự vượt ngudng của một giá trị
đo, sự thay đôi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bô điều khiển
« _ Tỉnh đông thời (conccurency): Hệ thống phải có khả nẵng phân ứng và xử
lý đồng thời nhiễu sự kiện diễn ra Có thế, cùng mét hic một bộ điều khẩn
được yêu cần thực hiện nhiều vàng điểu chỉnh, giảm sát nguỡng giá trị
nhiễu đầu vào, cảnh giới trạng thái làm việc của một số động cơ Đa số
các hệ thông thời gian thực thực hiện một hoặc một tập nhỏ các nhiệm vụ mức cao Sự thực thi các nhiệm vụ mức cao này yêu câu déng thoi nhiều
hoạt đông mức thấp hơn Và đây được gọi ld tinh dng thời, các hệ thông
Trang 21máy tỉnh sử đụng tính đồng thời để cải thiện thực thi vả điển này hoàn
toàn có thẻ thục hiện được trong cả các hệ thông đơn và đa bộ xử lý Các
hệ thống gốm một bộ xủ lý chỉ có thể thực hiện được một công việc tại
một thời điểm, chủng thực hiện chiến lược lập lịch để điều khiển khi các
nhiệm vụ thực thí Còn trong các hệ thống đa bộ xử lý, cáo bộ xử lý thực
thi không đẳng bộ, từng hệ xử lý riêng lẻ tạo lập một số luỗng giả trùng họp, chỉ một luồng don có thể được thực hiện tại một thời điểm bất kỳ đã
cho, nhưng các luông hoạt động thay đổi theo một số chiến lược lập lịch
Nhiễu hệ thống cũng sử dụng lính đồng thời như mội mô hình để mô tá các hoại động song song vẻ mặt logic, ngay cá khi các hoạt đông này được thực thì bằng cách xen kế từng hành đông trên một bộ xử lý đơn Hơn nữa,
các hệ thống thời gian thực cũng phải giải quyết tính đồng thời vẻ vật lý vốn có và các trùng hợp này lả một bộ phận của thế giới thực mà hệ thông,
được kết nỗi, Các tin hiệu đến từ mỗi trường có thể đến đồng thời; tách rời
theo quy luật tự nhiễn và các hành động đồng thời có thể được giám sát và điền khiển bởi một hệ thắng máy tính đơn, cân thiết phải biết thời điểm tín
hiện được nhận; và các tin hiệu ra có thê phái được phát tại thời điểm xắp
xỉ với răng buộc thời gian
© Tỉnh tiên định: Dự đoán trước được thời gian phản ưng tiêu biểu, thời gian phản tíng châm nhất cũng như trình tự đưa ra các phan ứng Nếu mật bê
điều khiển phải xử lý đồng thời nhiều nhiệm vụ, ta phải tham gia quyết
định được về trình tự thực hiện các công việc và đảnh giá được thời gian
xử lý mỗi công việc Như vậy người sử dụng mới có cơ sở để đánh giá về khả năng đáp ứng tinh thời gian thực của hệ thống
1.2.3 Các dạng của hệ thông thời gian thực
Về cơ bản, chương trình có tính thời gian thực phải có khá năng phản ứng lại cáo sự kiện trong môi trường mà hệ thống làm việo trong khoảng thời gian
nhất định cho trước Những hệ thống như vậy được goi là hệ thông, "điều khiển
sự kiên" (hay hệ thống hướng sự kiên evenl-driven) và có thể được mô lä bằng
Trang 22thời gian trễ tính từ khi sự kiện xảy ra tới khi hệ thẳng có hoạt đông phản ứng lại
1iệ thẳng thời gian thức cứng là hệ thông mà các hành động của nó phải
không bao giờ được vi phạm các rằng buộc thời gian trong đỏ có thời hạn lập lịch, hệ [hổng phải tiếp nhận và nắm bắt được thời hạn lập lịch của nó lại mọi thời điểm Hệ thống có lỗi hoặc sai sót trong việc tiếp nhận thời hạn sẽ gẩy ra các
han quả rất nghiêm trọng, thiệt hại vẻ vật chất, gây ảnh hưởng xấu đến sức khoẻ,
đời sống của con người, thậm chí chết người Với hệ thống thời gian thực cứng,
dữ liệu trế là đữ liệu tỗi Một ví dụ vẻ hệ thống thời gian thực cứng là hệ thẳng,
kiểm soát không hưu Trong hệ thông này, một nhân phổi đường bay, thời gian cất cánh, thời gian hạ cánh lchông hợp lý, không đúng lúc có thể gây ra tai nạn
mnáy bay mà hận quả của nó khó rà lường trước được Một ví đụ khác, máy hỗ trợ nhịp tin cha bệnh nhân khi phẫu thuậi Thuật toán điều khiển phụ thuộc vào thời gian nhịp tim của người bệnh, néu thời gian này bi trễ, tỉnh mạng của người bệnh sẽ bị ảnh hưởng
Ngược lại, hệ thắng thời gian thực mềm là hệ thông cỏ các rùng, buộc về thời gian, tuy nhiên, trong trường hợp các rằng buộc nảy bị vi phạm, tức là thời
gian trả lồi của hệ thẳng vượt quá thời hạn đặt ra, hệ thông vấn hoạt động được
tiếp và kết quả nó tạo ra bị giảm "giả trị” theo một ngiữa nào đó Nói cách khác, những kết quả lạo ra không đúng hạn tuy không hữu ict/không làm hải lòng người sử dụng bằng khi nó đưọc tạo ra đúng hạn nhưng vẫn được chấp nhận Chúng ta mong muốn hệ thông phản ứng lại các sự kiên trong thai gian cho phép nhưng không, có gi thực sự nghiêm trọng xảy ra nêu hệ thống thủnh thoảng bị trễ
Trang 23Lai vé mat théi gian cé thé chi don gian 1a din dén hậu qua giâm độ tin cây của
dối tượng đối với hệ thống mà khơng cỏ hậu quả thé tham nao khác xây ra
Trên thực tế cỏ rất nhiều hệ thơng phối hợp cả hai loại trên, trong, đĩ, một
phan nao đỏ của hệ thắng lam việc dựa trên hệ thống thỏi gian thực cứng, một số
phần khác lại dựa trên hệ thống thời gian thực mễm
Ta cd thé quan niệm hệ thống thời gian thực cửng là hệ thẳng phải thỏa
xnãn các rằng buộc cứng về thời gian - ràng buộc thời gian khơng được phép vì
phạm Tương tự, hệ thơng thời gian thực mềm là hệ thắng phái thỏa các ràng,
buộc mềm về thời gian - rằng buộc thời gian được phép vì phạm, nhưng các vì phạm sẽ làm giảm giả trị của kết quả Một hệ thống cĩ thể cĩ cả các rằng buộc củng lẫn rằng buộc mễm vẻ thời gian
1.2.4 Xử lý thừi gìan thực
“Xử lý thời giam thực là hình thức xử lý thơng tin trong một hệ thơng để đảm
bảo tính năng thời gian thục của nĩ Như vậy, xử lý thời gian thực cũng cỏ các
đặc điểm tiên biển nêu trên như tính bị động, tính nhanh nhạy, tính đẳng thỏi và
tỉnh tiễn định Để cĩ thể nhân ứng với nhiều sự kiện diễn ra cùng một lúc, một hệ thống xử lý thời gian thục sử dụng các quả trình tính tốn đồng thỏi
Qua trính tỉnh tốn là một tiến trình thực hiện một hoặc một phần chương, trinh tuân tự đo hệ điển hảnh quản ly trên một máy tính, cĩ thể tồn tại đẳng thời
với các quá trinh khác kể cả trong thời gian thực hiện lệnh và thời gian xép hang,
chờ đợt thực hiện
Các hình thức tổ chức ốc quá trình tính tồn đẳng thời:
~_ Xử lý tòng tranh: Nhiều quá trình tinh toan chia sé thời gian xử lý thơng tin của một bộ xử lý,
- Xử lý song song: Các quá trình lính tốn được phân chia thực hiện song song trên nhiều bộ xử lý của hệ thống máy tính
~_ 3# lý phân tản: Mỗi qua trình tính tồn được thực hiện riêng trên một mảy tính
Trang 24Trong các hình thức trên đây thi hinh thite xit ly tương tranh có vai trò chủ chốt Mặc đủ hệ thông điều khiển có thể có nhiều tram, va méi trạm có thể là một
hệ đa vi xử lý, số lượng các quả trình tính toán cần thực hiện thường bao giờ
cũng lớn hơn số lượng vi xử lý Trong Khi một vi xử lý không thể thực hiện song
song nhiễu lệnh, nó phải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ
khác nhau theo thử tự tùy the nức ưu tiến và phương pháp lập lich
Trong các hệ thống điều khiển, khái niệm zác vụ (task) cũng hay được sử
dụng bên cạnh quá trinh tỉnh toán Có thể nói, tác vụ là một nhiệm vụ xử lỷ thông tin trong hệ thống có (hể thực hiện theo cơ chế tuân hoàn (periodic task) hoặc
theo sự kiện (event task) Các dạng lắc vụ qui định trong chuân TRC 61131-3
(Programmable Coutrolicrs — Part3: Progranuming Languages) Ví dụ, một tác vụ
thực hiện nhiệm vụ điều khiển cho một hoặc nhiều mạch vòng kín cỏ chu kỷ trích mẫu giống, nhau Hoặc, một tác vụ cỏ thể thực hiện nhiệm vụ điểu khiển logic,
điển khiển trinh tụ theo các sự kiện xảy ra Tác vụ có thể thực hiện dudi dang
một quả trình tính toán duy nhất, hoặc một dãy các quá trình tính toản khác nhau
1.2.5, Ung dụng
Có thẻ nói, tắt các các hệ thông điển khiển là hệ thời gian thục Ngược lại,
một số lớn các hệ thông thời gian thực lá các hệ thống điều khiển Không có hệ thống điểu khiển nảo có thể hoạt động bình thường nếu như nó không đáp ứng
được các yêu cầu vẻ thời gian, bất kế là hệ thông điều khiển rưưệt độ, điều khiển
áp suất, điểu khiển lưu lượng hay điều khiển chuyển động Một bộ điều khiẩn
phải đưa ra được tín hiệu điền khiển kịp thời sau một thời gian nhận được tín hiên đo để đua quá trình kỹ thuật về trạng thải mong mudn Mét mang tmyén
thông trong mat hé thang dién khiển cỏ lính năng thời gian thực phải có khả năng truyền tìn một cách tin cậy vả kịp thời đối với các yêu cầu của các bộ điều khiển, các thiết bị vao/ra, các thiết bị đo và thiết bi chấp hành Tính nẵng thời gian thực của một bệ thông điểu khiển phân tán không chỉ phụ thuộc vảo tính năng thởi
gian thực của từng thành phần trong, hệ thống, má còn phụ thuộc váo sự phối hợp hoạt động giữa các thành phản đỏ [5].
Trang 251Iệ thông thời gian thực được ting dụng phê biển treng rất nhiêu lĩnh vục,
như thương mại, quản đội, y tế, giáo đục, cơ sở hạ tẳng, và hiện nay đang phát
triển rất mạnh mẽ Ta có thẻ kể ra một số lình vực ứng dụng tiêu biểu:
Các hệ thống phương tiện như: xe ô tô, xe điện ngằm, máy bay, tàu hỏa,
Hệ thống y tế như hệ thống chữa bênh bằng bức xạ, giám sát bệnh nhân,
phục hồi nhịp đập bình thưởng của tim
-_ Hệ thông vũ khí quân sự sử dụng trong quân đội tạo các vũ khí cháy nổ,
hiệu chỉnh tín hiệu,
-_ Hệ thắng chế tạo sử dụng robot
- TIệ thắng xử lỷ các luỗng Video và Audio
1.3 Thiết kế và phát triển ứng đụng cho hệ thống nhúng
ề thiết
Trong phản nảy trính bày các vẫn để và phát triển phần mềm nhúng, những khác biệt so với vấn để thiết kế và phát triển ứng dụng, vấn dé kiểm thử phân mém nhúng,
Trang 26y
- Phân bố chức năng cho phan cing vA mém (hardware (ITW) — software
(8W))
- Đông bộ hoạt động, của hệ thông,
- Cai đặt các chức năng thiết kế vào phân cứng (hardware) và phản mêm (software) hoặc phần nhão (firm-ware)
Cách thiết kế cổ điển là các chức năng phản mềm (SW) và phần cửng,
(I'W) được xác định trước rồi san đó cáo bước thiết kế chỉ tiết được tiền hành một cách độc lập ở hai khỏi Iiiện nay đa số các hệ thông tự động hoá thiết kế
(CAD) thường, đành cho Thiết kế phẩn cứng, Các hệ thống nhúng sử đụ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, pralocol,
do vay 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 hon trong quả trình thiết kể hai phần HW và SW Đề co được thiết kế cuối cùng tối ưu quá trinh thiết kế 8W 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áo hệ nhúng đời hỏi kiến thức đa ngành về điện tử, xử lý tín hiện, vi xử lý, thuật điều khiển và lập trình thời gian thực
Khi thiết kế hệ nhứng có một số vấn để mà các nhà thiết kế hệ nhúng cân
phải đặc biệt xem xét, đỏ lã
Độ tin cậy: Một hệ nhúng phải đảm bảo được Linh lin cậy, nỏ không thể phá hủy và cũng không thể được cập nhật
Hiệu suất thực hiện và tiêu thụ năng lượng:
+ Hệ thời gian thực được sử dụng trong nhiễu ứng dụng
1 Sản phẩm có thể phải thực thị được trên nguồn năng lượng là pin
1 Giới hạn vẻ mặt bộ nhớ và sự tiêu thụ điện năng, 'Về mặt chỉ phí: Các sản phẩm phái đảm hảo được thị trường tiếp nhận và tiếp cận nhanh chỏng với thị trường Sản phẩm liên quan đến người tiêu dùng
niên có tính cạnh tranh về mặiI giá cả Vi vay chỉ phí sản xuất cân được coi rong,
Trang 271.3.1.2 Nền tâng của hệ thông nhúng
a) Bộ nhé trang thiết bị nhúng
Hầu hết các thiết bị nhúng hiện tại sử dụng hai kiêu bộ nhớ, DRAM hoặc
đôi khí là SRAM cho bộ nhớ chỉnh và bộ nhớ Flash hoặc bộ nhớ RƠM cho việc lưu trit non-volatile như trình bảy ở đưới (Cân cả hai loại bộ nhớ volatile và non- volatile memory) [5]
® _ Bộ nhỏ flash thưởng được sử dụng thay cho ede é dia vi:
©_ Tiêu hao it điện năng hơn
©_ Nhỏ hơn
©_ Và độ trn cậy cao hon
*_ Lưu trữ hệ điều hảnh và các ủng đụng trong bộ nhớ Flash
Hệ điều hành và các chương trình ứng dụng thường được lưu trong flash,
vì hầu hết các thiết bị nhúng không oó ổ đĩa cửng Các Š đĩa cứng thường đời hỏi
cần có một không gian lớn hơn, và tiên thụ nhiên điện năng hơn, vi vậy chúng,
không phải là một tựa chọn thỉch hợp cho nhiễu thiết kế nhúng đặc bit trong các cảm lay nhỏ và các thiết bị điểu khiến bằng pin
»_ Khởi động từ bộ nhớ lash khi khỏi động (bật nguồn)
© Flash rat cham so voi RAM: sao chép mã lệnh từ SRAM hoặc
8DRAM để thực thi?
«Cẩn các công cụ phát trién phan mém hỗ trợ việc lưu trữ và thực thi
mã lệnh trong, ROM
b) Hệ điều hành cho hệ thẳng nhúng
Chúng la cân phải có một hệ điều hành cho hệ thống nhúng là do thị
trường của các sản phẩm nhúng tăng mạnh nên các nhà sản xuất ngày cần sử
dụng các hệ điển hành nhúng để bảo đảm sản phẩm có sức cạnh tranh
Mặt khác hầu hết các thiết bị có nhân mắm phức tạp cần hệ điều hành để:
* _ Hỗ trợ các tác vụ đa nhiệm, lập lịch biển và đồng bộ hóa các tác vụ
«_ Hỗ tợ cho một tập các thiết bị vào/ra
Trang 28Các hệ điểu hành nhúng hiện nay trước tiên phải kế đến là Embedded
điều hành chơ máy tính thông thưởng
Linux, hién đang phảt triển mạnh 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,
lêu hành nhũng truyền thống nhu
VxWGrks, Win CH Các đổi thủ cạnh tranh của imbedded Linnx hién nay 1a cae
dụng mới của mình vả sau đó mồi đến các hệ
thệ điền hành nhúng ur tan va Windows CE
1.3.2 Phần mềm nhúng
Hiện nay phần lớn cáo 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ử tiêu dùng, 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 bi 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 Phẩn mnễm nhúng ngày cảng có tý lệ giả trị cao trong giá trị của các sản phẩm nhúng
Để có thể tồn tại và phát triển, các sản phẩm công nghiệp và tiêu đù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 dung va thong
mình hoà 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,
Trang 291.3.2.1, Van đề chung khi viết phần mềm nhúng
Có một số vấn đẻ cân lưu ÿ khi viết một phần mềra những kháo với viết cáo phần mềm ứng dụng:
Thông lượng (Tiroughpul): Hệ thông, cò thẻ cần phải xử lý rất nhiều
đữ liệu trong một khoảng thời gian ngắn
áp ứng (IRespandl: TIệ thông có thể cân phải tác động trở lại với các
sự kiện mệt cách nhanh chong
Kiểm thie (Testability): Vibe dua ra thiét bi dé kiểm thử phần mềm
nhúng có thể rất khó khăn
Gỡ rồi (De&ugabilii;): Các hệ thông nhủng có thể không cỏ màn hình hay bản phim, nên việc tìm ra những lỗi của phần mễm đang thực hiện
là mặt vấn để khó khăn
Tô từn cậy (Realiabiliy): Các hệ thông nhúng phãi có khả năng xử lý
bắt kỳ các tình huống mà không có sự can Thiệp của con người Cụ thể, trong các tỉnh huỗng khỏ xử, phần mềm ứng đụng cỏ thể đưa ra một thông bảo và yêu cần người sử dựng thực hiện một số công việc nào
đó, nhưng cáo hệ thẳng nhúng không thê có sự lựa chọn đó, phần mềm
phải có khá năng xử lý mà không có sự can thiệp cửa con nghời Không gian bộ nhớ (Mfemorz §paee): Bộ nhớ bị giới hạn trong các hệ
thống nhúng, và thường bị chia sẻ thành hai phản - một phan ding để
1ưu trữ chương trình, một phẩn dùng để lưu trữ dữ liệu Không giếng như các ứng đụng cho deslop, các chương Irinh và dữ liệu được lưu trữ trong cung bộ nhớ, các hệ thông nhủng sử dụng các bộ nhớ khác nhau cho các mục đích Vì một hệ thống nhúng điển hình không có ổ địa để nạp các chương trình từ đó, các chương trinh cân phải được lưu trữ
trong bộ nhớ, thậm chỉ cả khi nguồn nuôi tắt Như vậy hệ thông nhủng cần phải có kiêu bộ nhớ đặc biệt để ghi nhận chương trình ngay cả khi không có nguồn nuôi Tuy nhiên, kiểu bộ nhớ đặc biệt nảy lại Không
phù hợp để lưu trữt đữ liệu, do đó cáo hệ thẳng nhúng cần phải có bộ
Trang 30nhớ thêng thường để lưu trữ dữ liệu Như vậy chủng ta phải làm sao cho phân mêm và dữ liệu khớp với các bộ nhớ đang có
«_ Cài đặt chương trình (Program bastallaHow): Cần phảt có các công cụ đặc biết để đưa phần rêm vào trong các hệ thẳng nhúng
* 8w tiêu hao nẵng lượng (Power Consumpton): Các hệ thống xách tay
thường phải chạy bằng pin hoặc ắcquy và phần mềm trong các hệ thống nảy nến tiết kiệm năng lượng
* Processor Hogs: Vige tính toán yêu câu lượng lớn thời gian CPU có
thể làm phức tạp vấn để đáp ứng
* Chi phi (Cost): Viée giảm chủ phí phản cứng lả mỗi quan tâm trong,
nhiều dự án xây dựng hệ thống nhủng Các hệ thống nhúng, phải đâm bảo lả cỏ chỉ phí sản xuất bé nhất, đáp ửng nhanh nhất yêu cầu thị
trường, không có cơ hội chỉnh sửa trong tương lai
1.3.2.2 Các kiển trúc phần mềm hệ thống nhúng
Một số loại kiến trủc phân mém thông dụng trong các hệ thống nhúng như
sau
Vang lặp kiếm soát đơn giãn
Theo thiết kế này, phẩn mểm được lỗ chức thành một vòng lặn đơn gián
Vòng lặp gọi đến các chương trình con, mỗi chương trỉnh son quản lý một phản của hệ thông phần củng hoặc phan mém
Hệ thống ngắt điều khiển
Các hệ thống nhúng thường được điều khiển bằng các ngắt Có nghĩa lả
các tác vụ của hệ thẳng nhủng được kieh hoạt bởi các loại sự kiên khác nhau Ví
dụ, một ngất cỏ thể được sình ra bởi một bộ định thời sau một chu kỳ được định nghĩa trước, hoặc bởi sự kiện khi cổng nối liếp nhận được một bytc nào đó
Loại kiển trúc nảy thung được sử dụng trong các hệ thống có bộ quản lý
sự kiện đơn giản, ngắn gọn vả cân độ trễ thấp Hệ thông nảy thuờng thục hiện một tác vụ đon giản trong một vòng lặp chỉnh Đối khủ, các tác vụ phức tạp hơn
Trang 3130
sẽ được thêm vào mét cau tnic hang doi trong bộ quản lý ngắt để được vòng lắp
xử lý sau đó Lúc này, hệ thống gân giống với kiểu nhân đa nhiệm với các tiểu trình rồi rạo
'Đa nhiệm tương tác
Một hệ thống đa nhiệm khổng ưm tiền cũng gần giống với kỹ thuật vòng,
lặp kiểm soát đơn giản ngoại trù việc vòng lặp nảy được ẩn giầu thông qua một
giao điện lập trình APT Các nhà lập trình định nghĩa một loạt các nhiệm vụ, mỗi nhiệm vụ chạy trong một môi trường riềng của nó Khi không cân thực hiện nhiệm vụ đỏ thì nỏ gọi đến các tiến trình con tạm nghỉ (bằng cách gợi “pause”,
“wait”, “yeild” )
Ưu điểm và nhược điểm của loại kiến trúc này cũng giống với kiểm vòng,
lặp kiểm soát đon giản Tuy nhiên, việc thêm một phần mềm mới đuợc thực hiện
dễ đàng hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng đợi thông
dich (queue-interpreter)
Da nhiệm 1mu tiên
Ở loại kiến trúc nảy, hệ thống thường cỏ một đoạn mã ở mức thấp thực
hiện việc chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời Doan
mé nay thường nằm ở mức mả hệ thống được coi lả có một hệ điều hành va vi thể cũng gặp phải tất cả những phức tạp trong việc quản lý đa nhiệm
Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đếu cần phải
được tách biệt một cách chính xác Việc truy cập tới các dữ liện chia sẻ có thể
được quan ly hằng một số kỹ thuậi đẳng hộ hóa như hàng đợi thông điệp
(message queues), semaphores, Vì những phíc lạp nổi trên nên một giải pháp thường được đưa ra đỏ là sử dụng mội hệ điểu hành thời gian thực Lúc đỏ, các nhà lập trình có thể tập trung vào việc phát triển các chức năng của thiết bị chứ
không cần quan tâm đến các dịch vụ của hệ điều hành nữa.
Trang 3231
Vi nhân (Microkernel) và nhân ngoại (Exokernel)
Khái niệm vi nhân (mierokernel) là một bước tiếp cận gần hơn tới khái niệm hệ điều hành thời gian thực Lúc này, nhân hệ điều hành thực hiện việc cắp
phát bộ nhớ và chuyển CPU cho các luỗng thục tí Còn các tiến trinh nguời
dùng sử dụng các chúc năng chỉnh nhat hệ thẳng file, giao điện mạng luới, Nói chung, kiến nic nay (hường được áp đụng Irong các hệ thông mả việc chuyển đổi
và giao tiễn gia các tác vụ là nhanh
Còn nhân ngoại (cxokcrnel) tiến hành gìao tiếp hiệu quả bằng cách sử
dụng các lời gọi chương trình con thông thường, Phần cửng va toàn bộ phản mém trong hệ thống luôn đáp ứng và có thể được mở rộng bởi các ứng dụng
hân khối (monolithic kernck)
Trong kiến Irủe nảy, một nhân đẩy đủ với các khả năng phức lạp được
chuyển đổi để phủ hợp với mỗi trường nhúng Điều này giúp các nhà lập trình có
được một môi trường giống với hệ điểu hành trong các máy để bản như Linux hay Microsoft Windows va vi thé rit thuan lợi che việc phát triển Tuy nhiên, nó lại đòi hỏi đáng kế các tài nguyên phần cửng lắm tăng chỉ phi của hệ thống, Một
số loại nhân khối thẳng dụng là Embedded Linux và Windows CE Mặc dù chỉ phi phan cứng tầng lên nhưng loại hệ thống nhúng này đang tăng trưởng rất
mạnh, đặc biệt là trong các thiết bị nhúng mạnh nửy Wireless rouier hoặc hệ thống định vị GPS Lý do của điều nay 1
+ Hệ thông này có công để kết nỗi đến các chip nhúng thông dụng
+ Hệ thống cho phép sử dụng lại các đoạn mã sẵn cỏ phố biển như các
trình điều khiển thiết bị, Web Servers, Firewalls,
+ Vide phat triển hệ thông có thể được tiến hành vơi một tập nhiều loại đặc
tính, chức năng còn sau đỏ lúc phân phổi sản phẩm, hệ thống cỏ thể được cấu hình để loại bỏ một số chức năng không cản thiết Diễu này giúp tiết Kiệm được những vùng nhở mà cáo chức năng đỏ chiếm giữ
Trang 33+ Hệ thông có chế đô người đùng để dễ dàng chạy các ứng đựng và gỡ rồi
Nhờ đó, qui trình phát triển được thực hiện để đảng hon va việc lập trình
‘Van để đặt ra: Chọn kiến trúc phần mềm nào?
Một số để nghị cho việc chọn kiến trúc phân mém:
- Chon kién trúc đơn giản nhất đáp ứng được yêu câu Việc viết phần mềm cho hệ thông nhúng cũng đủ phức tạp cho nên không chọu
một kiến trủc phức tạp mà không cằn thiết (viết phẩn mềm cho hệ
những đồi hôi phải có một kiến thức nhất định về phẫn cứng, không giảng như viết các ứng dụng cho desktop)
- Néu hé théng của chúng ta phải đáp ứng các yêu cần mà có thé doi
hỏi phải sử dụng một hệ điển hành thời gian thực, chúng ta nên
thiên về việc sử đụng một hệ điều hành thời gian thực
~ Có thể lạo ra mội #iến rúc lai giữa các kiến trúc trên Ví dụ, nêu ta
sử dụng một hệ thông thời gian thực, có thễ có mội tác vụ tm liên
mức thấp thắm dò các phân của phản cứng không cản thiết phải đáp
ng nhanh Tương tự, trong kiến trúc Round-Robin-with-Tnterrupts, vòng lặp chính có thẻ thăm đò các nhân chậm hơn của phân cứng, một cách trực tiếp hơn so với việc đọc cáo cờ thiết lập bởi các chủ
trình ngắt
Trong bài loán điển khiển môi trường nhà kính, kiến trac phan mém duoc chon cho vì điểu khiển lä vòng lặp kiểm soát đơn giản và hệ thống ngắt điều
khiển.
Trang 3433
1.3.3 Các công eụ phát triễn phần mềm nhúng
Các lập trình viên ứng dụng điển hình thực hiện công việc của họ trên
cùng một lciểu máy tính trên đó ứng đụng sẽ chạy Ví dụ như một người viết một
chương trình chạy đưởi Windows thường thực hiện lập trỉnh trên các máy chạy, Windows Sửa đổi chương trình, biên địch nó, liên kết, thủ và gỡ rối, tất cả trên củng một máy
Sách lược này sẽ phải thay đổi đổi với các hệ thống nhúng Đầu liên, hấu Tiết các hệ thông nhúng có phản cửng chuyên dụng đẻ gẵn vỏi các cảm biến đặc
biệt hoặc điều khiển đặc biệt, và chỉ có cách duy nhất tiến hành kiểm tra trên
phẩn cứng chuyên dụng đó Thử hai, các hệ thông nhủng thưởng sử dụng các bộ
vi xử lý chưa bao giờ được sử dụng như các trạm làm việc cơ bản Hiển nhiên, các chương trình không biên dịch một cách thân kỷ thành tập lệnh cho mọi bộ vỉ
xử lý được chọn cho hệ thông, và các chương trình này không thể nhảy một cách
thần kỳ vào trong bộ nhé của hệ thông nhúng để thực thỉ
Họ ngôn ngữ C' được sử dụng cho hậu hết các phải triển của các hệ thông
nhúng Hợp ngữt, cũng được sử dụng trong thiết kế nhúng với lý do là gó cáo mã
lệnh nhỏ gọn Tuy nhiên, cũng lưu ý rằng đây là biểu đỏ chung cho tất cả các
thiết kế của các hệ nhúng, việc lựa chọn ngôn ngữ lập trình còn tửy thuộc vào rất nhiều ứng dung ma chúng ta định phát triển
1.3.4 Các kỹ thuật gỡ rỗi
Các kỹ thuật để cho các lỗi không xuất hiện trong phan mém của hệ thống nhủng của chúng ta giống như việc không gây ra cho các phần mm ủng dụng Tuy nhiên, chúng rất quan trọng vì hai lý do Thứ nhất, kiếm thử và gỡ rồi các hệ
thống nhúng là bài toản khỏ khăn và mắt nhiều thời gian, thậm chí khó hơn nhiều
so với việc kiểm thử và gỡ rối các ửng dụng Cảng Ít lỗi càng tốt (cảng ít trầm trọng hơn) Thứ hai, mọi người không thể chấp nhận được các lỗi trong hệ thông,
nhúng Người tiên dùng có thể mua các tĩng dụng cho các máy tính cá nhân thỉnh:
thoảng bị lỗi nhưng không thể chập nhận một thiết bị những làm việc hẻng nửa
Trang 3534
chứng (thiết bị chuyển mạch điện thoại thì thoảng kết nói sai thiết bị hễ trợ nhịp
tìm làm việc lỗi, )
Việc viết phản mềm it lỗi quan trọng hơn rất nhiểu trong việc triển khai
các hệ thẳng nhúng so với các ứng dụng, vi khách hàng không chấp nhận các lỗi
trong các hệ thống nhúng, và các lỗi này rất khó dé tim ra Có nhiều công cụ và
kỹ thuật, chúng †a có thể sử dụng một tổ hợn
1.4 Xu hướng phát triển của các hệ nhúng
Sau may tinh 1én (mainframe), PC va Internet thi hé théng nhig dang 1a làn sóng đổi mới thứ ba Irong công nghệ thông tỉn và Inuyễn thông [ I]
2u hưởng phảt triển của các hệ thông nhúng hiện nay là:
- Phần mềm 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ị binh đẳng nhu các phần cơ khi, 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 it năng lượng và heạt đông tin cậy ôn định hơn
- Các hệ nhúng ngày càng có độ mềm dẻo cao đáp ứng các yêu cầu nhanh
chúng đưa sản phẩm ra thương trường, có khả năng bào trì tù xa, có tính cá nhân cao
- Các hệ nhúng ngảy cảng có khả năng hội thoại cao, có khả năng kết nối
mạng và hội thoại được với cáo đâu đo cơ cầu chấp hành và với nguời sử dụng,
- Các hệ nửrủng ngày cảng có tính thích nghị, 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
- Các hệ nhúng ngày cảng 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, ) để lao nên
các hệ thẳng tự liêp nhận năng lượng trong quả trình hoạt động
Những thách thức và các vẫn dễ tồn tại của các hệ nhúng
Hệ thông nhúng hiện nay còn phải đối mặt với các vẫn để sau:
Trang 36- Độ phức Tạp của sự liên kết đa ngành phối họp giữa phân cứng - phần
xmễm Độ phúc tap 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 - phản 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ác hệ
nhúng
- Thiểu phương phán tích hợp tối tu gifla các thành phần †ạo nên 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
1ã Kết chương
1Iệ thông những là vẫn đề lớn và chương 1 của luận văn đã tìm hiển, trình
bay những vấn để chung nhật gốm: hệ thống nhúng, hệ thẳng thời gian thực cho
các hệ thông nhúng, các ván đề liên quan đến việc thiết kế và phát triển ting dung
cho hệ thống nhúng
Với hệ thống nhúng, ngoài việc trình bày cáo khái niệm va vi dụ về hệ
thống nhúng còn đưa ra các đặc điểm của hệ thông nhúng và sơ lược về kiến trúc phần mềm trong hệ nhủng
Các hệ thống nhúng điều khiển hẳn như là các hệ thống thời gian thực,
niên phản tiếp theo tác giả trình bày khải niệm hệ thông thời gian thực, các đặc
điểm của hệ thông thời gian thục cùng với các đạng của hệ thống thời gian thực
Tiếp theo lac gia Irình về các vẫn để liên quan đến thiể kế và phải triển
ứng dụng cho hệ thông nhủng, các nên tảng phản cứng, phân mẻm của hệ thống.
Trang 3736
Vị điều khiển thường được đùng để xây đựng các hệ thẳng nhúng Trong,
hẳn hết các hệ thống nhúng đều cỏ các vi điều khiển, từ các thiết bị ứng dụng,
trong gia định đến các hệ thông điều khiển thông, minh khác Vi điều khiến ngày
cảng được sử dụng rộng rãi nên rhiểu người cũng như nhiều nhả sản xuất đền
hưởng tới sử đụng vi điều khiển trong các ứng dụng nhúng Vỉ vậy trong phan
tiếp theo của luận văn sẽ trình bảy về vị điều khiến AVR, là một trong số các vĩ
điều khiển có nhiều tính năng hắp dẫn đối với việc phát triển các hệ thẳng những
Trang 38CHUONG 2: VI DIEU KHIEN AVR
Trong chương này, lôi xin trình bày cẩu trúc chưng của họ vi điều khiển
AVR, một họ vi điểu khiển do hãng Atrnel sản xuất, về truyền thông nối tiếp
không đồng bộ LISART với AVR, vẻ chuyển đổi ADC trên AVR, đồng thời cing, trình bảy về một số công cụ hỗ trợ cho việc lập trình vi điều khiển ngoài các tập
lệnh hợp ngữ
2.1 Vi điều khiển
Vi điều khiển là môi máy tỉnh được tích hợn trên một chip, nó thường
được sử dụng để điều khiển các thiết bị điện tt Vì điểu khiển, thực chải, là môi
hệ thẳng bao gồm mội vì xử lý cỏ hiệu suất đủ dùng và giả thành thấn (khác với các bộ vi xử lý đa năng đùng trong, máy tính) kết hợp với các khối ngoại vi như
bộ nhớ, các mö đun váo/ra, các mồ đun biển đổi sở sang tương tự và tương tự
sang số, Ở máy tính thi các module thường được xây dụng bởi các chúp và mach ngoai [9]
Vi điểu khiển thường được dùng để xây dựng các hệ thông nhúng, trong,
các sản phẩm tự động điểu khiển Nó xuất hiện khả nhiễu trong các dụng cụ điện
tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc I3VD, thiết bị đa
phương tiện, đây chuyển tự động, v.v
Hiện nay trên thị trường co nhiều họ vị điều khiển hợ 8048 và 8051 của
Intel, 68HC11 của Motorola, Z8 ctia Zilog, PIC của Miorochip, H§ của
Hitachi,
cho thấy sự có mặt của nhiều loại vi điển khiển khác nhan, với củng nhân (core)
và cuối cùng phải kể đến là AVR của Atmel Một họ vi điều khiển
Trên thi trường có hảng Hăm loại vi xử lý và vì điều khiển vì thể
chon mét loại cu thể cho phủ hợp với ứng đụng của chúng ta trở thánh một sông,
việc hết súc khỏ khăn Thông thưởng người ta bắt đầu bằng việc liệt kê các vi
Trang 3938
điền khiển đưới đang tính năng và giá câ, sau đó so sánh vải các vì điều khiển có
sẵn trên thị trường Quyết định cuỗi cùng cho việc lựa chọn vẫn cỏn bị chỉ phối
bồi các yếu tố khác nhu xu hưởng thị trường, điễn biến trong công việc phát triển
của công ty, tỉnh thông dụng và kỳ năng thiết kế cục bộ, [3]
AVR là vi điều khiển có kiến trúc RISC (Redueed Instruclion Set
Computer) 14 một kiển cấu trục kha phd bién của hộ xử lỷ Câu trúc thanh ghi
bên trong chip có độ dài 8 bit
Chíp AVR được lựa chọn cho bải toản điều khiển môi trường nhà kinh với
Tý đo so với các chịp vi điều khiển 8 bits khác, AVR cỏ nhiều đặc linh hơn hẳn, hon ca trong lính ứng đụng (dễ sứ dụng) và đặc biệt là về chức nắng
- Gân như chúng ta không cần mắc thêm bắt kỳ linh kiện ph nao khi sử
dụng AVR, thậm chỉ không cần nguồn tạo xung clock cho chip Œhường là các
- Tên cạnh lập trình bằng ASM, cầu Irủc AVR được thiết kê lương thích Œ
"Ngoài ra nó còn tích hợp những đặc tính khá hoàn thiện như: hiệu suất cao hơn, tiết kiệm năng lượng hơn, tốc độ xử ly nhanh hơn, giả thành vừa phải
2.2 Kiến trúc của vi điều khiển AVR
Vi điều khiển AVR lả bộ xử lý RISC voi kiến trúc Harvard (Thuật ngĩt
kiến trúc Harvard dùng dễ chỉ một đặc điểm là đon vị xử lý trung tâm (CPU) od
bộ nhớ chương trình và một bộ nhớ đữ liệu tách biệt [3]) Họ vị điền khiển AVR
có những, đặc điểm sau:
+ Có thế sử dựng xung clock lên đến I6MI1z, hoặc sử dụng xung
clock nội lên đến 8 MHz (sai số 3)
« Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và đụng
Trang 4039
lượng lớn, có SRAM (Ram Tĩnh) lón, và đặc biệt có bộ nhớ lun trữ lập trình đuọc EEPROM
« _ Bộ nhớ chương trình Flash có thể lập trình lại rất nhiéu 1an va dung
Tượng lớn, có SRAM (RAM tĩnh) lớn, va đặc biệt có bộ nhớ lưu trữ
lập trình được EEIROM
«_ Nhiều ngõ vào ra (/O PORT) 2 hướng (bi-direetional]
« Sbi
, 16 bits timer/counter lich hop PWM
© Cée bd chuyén adi Analog — Digital phân giải 10 bits, nhiễu kênh
¢ Chic nang Analog comparator
© Giao dién ndi tiếp USART (tương thích chuẩn nỗi tiếp RS-232)
« Giao diện nối tiếp Two —Wire -Serial (tương thích chuẩn 12C)
Master va Slaver
© Giao dign ndi tiép Serial Peripheral Interface (SPI)
Họ vị điểu khiến AVR được chia làm ba loại, đó là :
1 TinyAVR (như AT tỉny 13, AT tíny 22 ) có kích thước bộ nhớ nhỏ, iL bộ phận ngoại vi
2 AVR (ding AVR, như AT9088535, AT9088515 ) có kích thước bộ nhỏ vào loại trung bình
3 MeaaAVR (nhu ATmega32, ATmegal2§, ) với bộ nhở có kiehi thước vải Kbyte đến vài trăm Kb cùng với các bộ ngoại vỉ đa đạng được tích hợp trên chip
Sự khác nhau cơ bản giữa các dòng chỉnh là câu trúc ngoại vi, còn nhân
thì vẫn như nhan Ví dụ như TinyAVR có số chân hay cấu fạo thu gọn hơn so với
các thiết bị MegaAVR khác Nhưng tất cả các thiết bị trong họ AVR đều có chưng một tập lệnh, vá tổ chức bê nhớ giếng nhan Mệt số vi điên khiển AVR
ban gồm: SRAM, EEPROM và giao liép SRAM mé réng, bộ chuyển đổi lương,
tự số (ADC), cau inte nhiéu tuyén, UART, USART
Các vi điều khién MegaAT hay TinyAT déu cing od chung mét nhan
AVR