Đáp án đề cương môn học Xây dựng hệ thống nhúng Học viện Công nghệ Bưu chính Viễn thông

Là kịch bản trong quá trình phát triển. Môi trƣờng phát triển có một PC hổ trợ. Sử dụng để phát triển các phần mềm ứng dụng cho hệ thống nhúng. Phaaffn mềm phát triển nằm trên PC và sẽ tải xuống hệ đích để chạy thử hay nạp vào hệ đích ở pha cuối cùng. Trong RON có một chƣơng trình gọi là Debug Agent đóng vai trò kép nhƣ một loader nhƣ ở các kịch bản trên.

doc54 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 3780 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đáp án đề cương môn học Xây dựng hệ thống nhúng Học viện Công nghệ Bưu chính Viễn thông, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g tự Ghép nối BUS hệ thống: ghép nối với các BUS địa chỉ Bộ xử lý(CPU): Điều khiển toàn bộ sự hoạt động của hệ thống, thực hiện chức năng xử lý của dữ liệu theo nguyên tắc thực hiện chương trình máy tính cài trong bộ nhớ ROM hay nạp vào bộ nhớ RAM BUS CPU: Trao đổi dữ liệu giữa BUS địa chỉ, BUS dữ liệu, BUS điều khiển ROM: Là bộ nhớ chỉ đọc,nó không làm mất nội dung khi mất điện RAM: Là bộ nhớ ghi/đọc NVRAM: Ghép nối với các hệ thống khác: Liên kết các HTN khác, mạng dữ liệu, trung tâm điều khiển SCADA,… Ghép nối mở rộng: ghép nối các thiết bị , cổng mở rộng Môi trường hoạt động: nơi sử dụng HTN Cảm biến: Ghi nhận thông tin công nghệ (vị trí, quay vòng, tốc độ, nhiệt độ, áp suất, kích thước(cao, dài, sâu)…) Nguồn nuôi: Cung cấp năng lượng cho hệ thốngtừ mạng điện lưới, hay sử dụng pin Câu 4.3 : Nói Hệ thống nhúng là một hệ thống đáng tin cậy (dependable), vì các đặc tính sau đây : Tin cậy (Reliability): Hãy giải thích cụ thể … Khả năng duy trì (Maintainability): Hãy giải thích cụ thể Tính sẳn sàng (Availability): Hãy giải thích cụ thể … Chắc chắn (Safety): Hãy giải thích cụ thể … An ninh (Security): Hãy giải thích cụ thể … TL Tin cậy : Do HTN có những đặc điểm sau : HTN có phần cứng với chất lượng cao, cụ thể : + CPU độc lập, có tính năng cao + ROM, RAM : không giới hạn về dung lượng + Input/Output : riêng lẻ, kết nối đa dạng tương thích với BUS hệ thống Phần mềm thì ổn định , phần mềm viết ra không có các phần mã trừu tượng hay có cũng ở mức thấp Vì HTN hoạt động một cách độc lập nên nó có độ tin cậy, lý tưởng mà không có sự cố hỏng hóc đồng thời tính chịu lỗi cao HTN là một kiểu máy tính có yêu cầu về chất lượng và hoạt động được trong môi trường khắc nghiệt về nhiệt độ(cao, hay rất thấp), độ ẩm cao, độ rung động lớn, nhiễu sóng điện từ… Đáp ứng dịch vụ yêu cầu đúng thời hạn Có tính sẵn sàng cao HTN thuộc loại thiết bị thông minh tự phản ứng, bị động những tương tác liên tục với môi trường và có đáp ứng kịp thời với những tiến triển mà môi trường đó xác lập Ví dụ : các máy tính trong công nghiệp, các thiết bị truyền thông, trạm BTS chẳng hạn, hay các máy tính điểu khiển trên máy bay (fly by wire)…lí tưởng là không có sự cố hỏng hóc. Hoạt động tin cậy, chịu lỗi cao – Tính độ tin cậy : đáp ứng yêu cầu đúng thời hạn từ t0 đến t ; Cho hằng số của tỉ số của tỉ số sự cố trong thời gian 1 giờ đồng hổ là e (e/h), thì biểu diễn tỉ số sự cố là R(t)=exp(-e(t-t0)), sau đó thời gian giữa 2 lần sự cố sẽ là 1/R(t), độ tin cậy cao nếu đạt ~ 10-9 sự cố/ giờ. Khả năng duy trì : Làm việc được trong các môi trường khắc nghiệt về nhiệt độ (cao hay thấp), độ ẩm cao, độ rung lớn, nhiễm sóng điện từ. HTN là một hệ thống có khả năng duy trì tốt do các yếu tố : - Có khả năng phân cấp phần mềm và dự phòng phân cấp phần cứng , HTN có kích thước nhỏ, gọn, nhẹ, dễ mang, dễ vận chuyển và dễ lắp đặt - Có giá hợp lý và hoạt động hiệu quả - Hoạt động tin cậy, chịu lỗi cao Hiệu năng xử lý , năng lượng tiêu thụ, bộ nhớ, các phần cứng khác đều rất hạn chế HDH được thiết kế phù hợp với các xử lý đã định. Thời gian bảo trì nhanh chóng Có hiệu năng cao do có các đặc tính : + Sử dụng năng lượng thấp và hiệu quả + Thời gian xử lý tác vụ nhanh, sử dụng ít tài nguyên phần cứng… Có tính an toàn và bảo mật Tính sẵn sàng : Có tính sẵn sàng cao là kết quả của tính tin cậy và bảo trì HTN có tính sẵn sàng vì có các đặc tính sau : Phần lớn các HTN hoạt động với sự ràng buộc về thời gian : yêu cầu có thời gian cho đầu ra nhanh, đúng thời điểm, trong mối tương quan với thời điểm xuất hiện của sự kiện đầu vào. Khi có sự kiện hệ thống phản ứng ngay, chuyển nhanh nhất đến mã chương trình ứng với sự kiện đó để xử lý, nói cách khác trong một cửa sổ thời gian cho phép, xử lý sẽ được thực hiện và có đáp ứng đầu ra Làm việc ngay cả trong môi trường khắc nghiệt Tính chắc chắn : Nếu có sự cố xảy ra, HTN không gây ra những tác hại khác của hệ thống. Do HTN có các đặc điểm : Các HTN hoạt động với sự ràng buộc về thời gian nên đáp ứng đầu ra đúng thời điểm - HTN là một kiểu máy tính có yêu cầu về chất lượng và độ tin cậy rất cao do có phần cứng chất lượng cao và phần mềm ổn định - HTN thuộc loại thiết bị thông minh nên trong quá trình làm việc sẽ xử lý tình huống phù hợp và không bị sai hay nhầm lẫn Hoạt động tin cậy, chịu lỗi cao An ninh: Dữ liệu của HTN được bảo vì việc truy cập phải có xác nhận mật (VD: HTN là các thiết bị truyền thông, SOHO) do vậy không thể tuỳ tiện truy cập dữ liệu của HTN. Nếu có sự cố xảy ra, HTN không gây ra những tác hại khác nhau của toàn hệ thống. Câu 4.4: A.Từ cách xác định địa chỉ cho dịch vụ xử lí ngắt (Interrupt Service Routine-ISR) sau đây : Địa chỉ của ISR đã được định sẳn bên trong CPU ; Địa chỉ của ISR được chỉ định một chổ nào đó trong bộ nhớ, hoặc phải thực hiện một lệnh nhảy (JMP addr) tới địa chỉ hiện tại của ISR ; Thiết bị ngoại vi phải cung cấp cho CPU địa chỉ của ISR thông qua số hiệu ngắt. Hãy chọn các khả năng định địa chỉ phù hợp với kiểu tổ chức ngắt sau: Ngắt cố định là : 1 ? hay 2 ? hay 3 ? Ngắt vector là : 1 ? hay 2 ? hay 3 ? B .Ngắt cứng là gì ? Cho ví dụ ứng dụng ? C .Ngắt mềm là gì ? Cho ví dụ ứng dụng ? TL A.Từ cách xác định địa chỉ cho dịch vụ xử lí ngắt : Ngắt là tín hiệu gửi đến bộ xử lý, yêu cầu bộ xử lý tạm ngừng các hoạt động hiện tại để chuyển đến thực hiện một nhiệm vụ khác. Chương trình đi kèm với ngắt là chương trình con phục vụ ngắt ISR )Interrupt Service Routine). 1. Ngắt cố định là : 2 2. Ngắt vector là : 3 B. Ngắt cứng : Ngắt cứng là ngắt từ một tín hiệu phát sinh từ thiết bị. Ngắt cứng có thể xem là một lời gọi hàm đặc biệt trong đó nguộn kích hoạt là một sự kiện đến từ bên ngoài chương trình thông qua một cấu trúc phần cứng(thường là kết nối bên ngoài qua các chân ngắt). Ngắt cứng được hoạt động theo cơ chế di bộ vì các sự kiện ngắt kích hoạt từ các tín hiệu ngoại vi bên ngoài và tương đối độc lập với CPU, thường là không xác định thời điểm kích hoạt. Khi các ngắt cứng được kích hoạt CPU sẽ nhận dạng và thực hiện lời gọi hàm thực thi chức năng phục vụ sự kiện ngắt tương ứng. Trong các cơ chế ngắt khoảng thời gian từ khi xuất hiện sự kiện ngắt (yêu cầu phục vụ ngắt) tới khi dịch vụ ngắt được thực thi là xác định và tùy thuộc vào công nghệ phần cứng xử lý của chip. Tổ chức tạo ngắt có thể đơn giản nếu CPU hỗ trợ nhiều đầu vào ngắt không và hệ thống không cần nhiều ngắt cứng. Ví dụ trong CPU 8080/8085 có 4 ngắt (RST7.5, RST6.5, RST5.5 và TRAP) và 8 ngắt mềm (RST0 đến RST7). VD ứng dụng : đồng hồ thời gian thực, báo lỗi phần cứng, báo mất nguồn nuôi,báo lỗi truyền tin… C.Ngắt mềm: là ngắt từ một tín hiệu phát sinh bằng lệnh máy tính. là sử dụng một nguyên lý mà HĐH hỗ trợ thông qua lệnh máy tính, giúp tạo ra sự chuyển xử lý tạm thời đến một xử lý đột xuất. Ngắt mềm thực chất thực hiện một lời gọi hàm đặc biệt được kích hoạt bởi các nguồn ngắt là các sự kiện xuất hiện từ bên trong chương trình và ngoại vi tích hợp trên chíp. Ví dụ như ngắt thời gian từ thiết bị như ADC/DAC.. Cơ chế ngắt này còn được hiểu là loại thực hiện đồng bộ với chương trình vì nó kích hoạt và thực thi tại các thời điểm xác định trong chương trình. Hàm được gọi sẽ thực thi chức năng tương ứng với yêu cầu ngắt. Ví dụ như hệ điều hành của PC sử dụng ngắt 21 hex để gán cho ngắt truy nhập đọc dữ liệu từ đĩa cứng và xuất dữ liệu ra máy ín VD: ngắt mềm thông dụng: + INT 10H(video services) + INT 16H (keyboard services Câu hỏi 4.5 : Thế nào là ngắt có che (maskable) ? Thế nào là ngắt không che (non-maskable) ? Hãy đặc tả các bước mà CPU sẽ thực hiện khi chấp nhận xử lí một ngắt ? Khi viết mã cho dịch vụ xử lí ngắt (Interrupt Service Routine-ISR), cần đặc biệt quan tâm đến gì ? Tại sao ? A - B. Ngắt cứng cũng được chia thành 2 loại: ngắt che được và không che được. Ngắt che được là ngắt có thể cho phép hay không cho phép thực thi bằng phần mềm thông qua cờ ngắt IF(interrupt Flag): lệnh CLI(Ckear interrupt Flag) sẽ cấm ngắt và lệnh STI( set interrupt flag) sẽ cho phép các ngắt này hoạt động và ngược lại ngắt không che được là ngắt không kiểm soát được, luôn hoạt động. C.Các tín hiệu yêu cầu phục vụ ngắt từ một thiết bị ngoại vi bất kỳ được gửi tới chân nhận yêu cầu ngắt của CPU có thể thông qua một khối điều khiển ngắt. Tùy theo người lập trình mà yêu cầu ngắt đó có được chuyển tới CPU hay không ( thông qua chiến thuật nhận và xứ lý ngắt với các lệnh cho phép ngắt (EI) hay cắm ngắt (DI). Trong trường hợp yêu cầu ngắt được gửi tới CPUm xử lý của CPU gồm các bước sau: Quá trình thực hiện ngắt, cấm ngắt nếu cần, bảo vệ các thanh ghi của CPU, thực hiện xử lý khôi phục các thanh ghi, IRET) - CPU hoạt động bình thường - Khi các thiết bị vào ra sẵn sàng chuyển số liệu sẽ gửi yêu ngắt tới CPU bằng tín hiệu IRQ tới đầu vào INTR(interrupt request) của CPU. - CPU thực hiện nốt lệnh đang thực hiện trước khi trả lời chấp nhận ngắt - CPU nhận và tìm cách xác định ngắt và trả lời thiết bị vào ra bằng tín hiệu INTA Interrupt acknowledgement - Đẩy PSW (program state word) và pc (program counter) vào ngăn xếp - xóa các cờ IF (interrupt flag) và cờ TF (Trap Flag) - TB vào ra thông qua bộ điều khiển ngắt cho biết địa chỉ của chương trình con phục vụ ngắt isr của ngắt đó. CPU nạp địa chỉ này vào pc - Cpu nhảy đến chương trình con isr và thực hiện xử lý Chương trình isr sẽ đẩy nhanh các thanh sẽ bị thay đổi trong chương trình con vào ngăn xếp Chương trình isr sẽ thực hiện việc chuyển số liệu giữa các thiết bị vào ra và bộ nhớ qua ACC của cpu Sau khi chuyển số liệu xong cpu khôi phục các thanh ghi Khôi phục pc và psw từ ngăn xếp trờ về chương trình chính thực hiện tiếp các nhiệm vụ trước khi có ngắt D. Những điều cần lưu ý khi viết chương trình ISR: những điều lệnh đầu tiên của isr thực hiện là Đẩy cấc thanh ghi của cpu vào stack Thực hiện việc cấm ngắt để tránh đệ quy ngắt nếu cần hoặc cấm các ngắt khác Mã xứ lý của isr Khôi phục các thanh ghi của cpu Khôi phục lại khả năng chấp nhận ngắt cho các ngắt tạm cấm Quay về chương trình bị gián đoạn trước đó Câu hỏi 4.6: Hãy chọn những tiêu chí cho là đúng với cơ chế trao đổi dữ liệu kiểu truy nhập trực tiếp bộ nhớ (DMA) : Trả lời: Dựa vào quá trình thực hiện DMA: 1) CPU làm việc bình thường 2) Khi thiết bị ngoại vi muốn chuyển số liệu trực tiếp với bộ nhớ thì gửi yêu cầu tới DMAC qua tín hiệu DRQx ( DMA Reqest thứ x, mỗi DMAC có khả năng nhận 4 DRQ). 3) Bộ điều khiển DMAC chuyển yêu cầu này tới CPU qua tín hiệu HRQ: Yêu cầu CPU “tách ra “ khỏi BUS hệ thống. 4) CPU thực hiện nốt chu kỳ máy đang thực hiện, treo BUS và trả lời DMAC bằng tín hiệu HLDA: Chấp nhận và đã treo BUS. 5) DMAC trả lời thiết bị vào/ra bằng tín hiệu DACKx, DMAC quản lí BUS hệ thống và phát sinh các tín hiệu địa chỉ lên BUS địa chỉ, hướng tới bộ nhớ, 6) Phát các tín hiệu điều khiển: MEMRD/, MEMWR/, IORD/, IOWR/, để thực hiện DMA vào: đọc thiết bị/ghi bộ nhớ hay DMA ra: dọc bọ nhớ/ghi ra thiết bị. 7) Điều khiển chuyển số liệu giữa bộ nhớ và thiết bị vào/ra, chạy đồng bộ theo BUS-clock. Số liệu chuyển giữa bộ nhớ và thiết bị vào/ra thường là cả một khối, có độ dài tùy ý qua lập trình. 8) Khi chuyển xong số liệu DMAC đưa tín hiệu TC hay EOP (Terminal Count, End of Operation-EOP) thành tích cực để báo một quá trình DMA kết thúc (tín hiệu TC đóng vai trò một ngắt khi sử dụng để thông báo cho CPU). DMAC treo BUS, DMAC hũy HRQ. CPU hũy HLDA, CPU trở lại quản lí BUS hệ thống. Chu kì DMA hoàn tất. Như vậy c ác tiêu chí cần với cơ chế trao đổi dữ liệu kiểu truy nhập trực tiếp ô nhớ DMA là A-C-D-E A : DMA Cần DMAC C : DMAC kiểm soát BUS hệ thống D: CPU vẫn … từ cache trong và cache ngoài E: CPU theo kiến trúc Havard . Do khi DMA chạy, CPU sẽ làm việc độc lập thực hiện các lệnh đã được lưu vào trong cache lệnh từ trước nếu không truy nhập tới bộ nhớ dữ liệu. Do CPU kiến trúc Havard có cache lệnh và cache dữ liệu tách rời với nhau. Câu hỏi 4.7: Thế nào là lập lịch hướng vào/ra (hướng I/O) ? Thế nào là lập lịch hướng CPU ? Thế nào là lập lịch tĩnh (static/offline) ? Thế nào là lập lịch động (online) ? Thế nào là lập lịch có thể chen ngang (preemptive algorithms) và lập lịch không thể chen ngang (non-preemptive algorithms) ? Trả lời : A-B : Lập lịch là một phép thực hiện phân bổ và gán quy trình thực thi các tác vụ cho bộ xử lý sao cho mỗi tác vụ được thực hiện hoàn toàn. Như vậy công việc của lập lịch là tìm kiếm một giản đồ phân bố thời gian thực thi theo kiểu đa nhiệm hợp lý với các điều kiện ràng buộc cho trước. Hay nói cách khác là lập lịch phải xử lý thông tin điều kiện để quyết định và điều phối thực hiện tiến trình/tác vụ. Phân loại lập lịch, các TT(tiến trình) được phân ra làm hai lớp theo nhu cầu thời gian, là : 1. “hướng I/O” (I/O bound) có nghĩa TT sử dụng nhiều thao tác I/O, nhiều chi phí thời gian cho I/O 2. “ hướng CPU” (CPU-bound), là lớp TT yêu cầu nhiều thời gian CPU. TT sử dụng phần lớn thời gian của CPU để thực hiện xử lí C : Lập lịch tĩnh (offline): Việc lập lịch được thực hiện dựa trên các hiểu biết hoặc dự báo về các sự kiện tác vụ thực hiện trong hệ thống (thời điểm xuất hiện, thời gian thực hiện, hạn chót ước tính (deadline) và được quyết định tại thời điểm thiết kế và được áp dụng cố định trong suốt quá trình hoạt động của hệ thống. Các tác vụ được khởi động ở các thời điểm đã lập trong một bảng trước đó, module phân phối (dispacher) khởi động tác vụ theo chỉ dẫn trong bảng. Module phân phối được kiểm soát bởi các bộ định thời (timer), đưa module vào thực hiện phân tích bảng lịch để kích hoạt tác vụ đúng thời điểm. Một hệ thống bị giám sát bởi timer gọi là time trigged (TT system). Lập lịch động (online): Bộ xử lý thực hiện việc lập lịch trong quá trình thực thi (run time) dựa trên cơ sở các thông tin hoạt động hiện hành của hệ thống. Sơ đồ lập lịch là không xác định trước và thay đổi động theo quá trình thực hiện. Lập lịch động linh hoạt nhưng tốn thời gian tính toán để ra quyết định và cũng không có “nhận thức” tới bối cảnh tổng thể như các yêu cầu tài nguyên, sự phụ thuộc giữa các tác vụ. Ở các HTN các bối cảnh tổng thể thời được định hình lúc thiết kế. Ví dụ là lập lịch kiểu Earliest deadline first scheduling and Least slack time scheduling. D : Các nhân HĐH được điều khiển theo cơ chế ngắt thường thực thi cơ chế lập lịch không chen ngang (dymnamic nonpreemtive) động , trong khi loại hạt nhân HĐH vận hành theo quá trình lại thực thi theo cơ chế chen ngang động (dynamic preemptive). - Chen ngang (preemptive): giải thuật được sử dụng nếu có tác vụ nào đó có thời gian thực thi quá lâu, nó có thể bị tác vụ khác ngắt hay nếu một sự kiện bên ngoài cần thời gian đáp ứng ngắn, sụ kiện đó sẽ ngắt sự kiện khác, có tính đệ qui - Không chen ngang (non-preemptive): giải thuật giả định rằng các tác vụ sẽ thực hiện cho tới khi hoàn tất. Như vậy nếu có một tác vụ thực thi quá lâu, thì đáp ứng cho các sự kiện ngoài sẽ lâu. Câu hỏi 4.8 :A-Định thời (watch-dog) là gì ? Vai trò của định thời trong hệ thời gian thực là gì ?B-Phát thảo một giải thuật xử lí có tác nhân giám sát của định thời ? Đáp án:A. Định thời: khung thời gian thực ấn định cho một xử lí phải hoàn thành. (1 điểm) Định nghĩa bộ giám sát định thời (watchdog timer): là đồng hồ thời gian cứng (dùng các bộ đếm điện tử ) với các ứng dụng sau đây: - Làm đồng hồ thời gian thực (real time clock-RTC) cho hệ thống; - Khởi động/ Khởi động lại một sự kiện sau một thời gian đặt trước; - Tạo khung cửa sổ thời gian cho một sự kiện; - Phân giải khoảng thời gian giữa 2 sự kiện; - Chó canh chừng. Hay đồng hồ thời gian mềm (lập các giá trị đếm cho một biến chương trình), các thao tác tăng/giảm giá trị đếm thực hiện bằng lệnh máy, do đó phụ thuộc vào CPU clock (mỗi loại CPU có clock khác nhau).Chó canh chừng sẽ thực hiện một tái khởi động (reset) hệ thống hay một hành động (xử lý), hoặc kích hoạt một xử lý hiệu chỉnh nếu chương trình chính bị lỗi, không tiến triển được do một điều kiện nào đó, không thể hoàn thành trong khung thời gian dự tính (chương trình bị treo). Vai trò của định thời trong hệ thời gian thực: Trong các hệ thời gian thực, trong đó có HTN, chó canh chừng rất quan trọng, được sử dụng để tự động khởi động lại một ứng dụng nhúng hay thậm chí cả hệ thống về trạng thái ban đầu mà không có sự can thiệp của con người. Ví dụ : giả định một phần mềm, có có vòng lặp chạy trong 25 micro giây, hay với dung sai tối đa là 35 micro giây để thực hiện xử lý. Dùng một một watchdog timer có đầu ra nối vào một ngắt không che (NMI), hay vào chân RESET của CPU. watchdog timer được nạp một giá trị 50 micro giây, nếu sau thời gian đó phần mềm vòng lặp không kết thúc, đầu ra của watchdog timer sẽ kích hoạt RESET, khởi động lại hệ thống. Nếu vòng lặp kết thúc với trạng thái bình thường, watchdog timer sẽ được nạp lại giá trị cho một chu kì mới. HTN là loại hệ thống con người không thể giám sát hoạt động thường xuyên, do vậy chó canh chừng là giải pháp nếu hệ thống bị treo (lí do ….). Có những trường hợp B: G iải thuật với watchdog timer: Mỗi tác vụ khác biệt thực thi bởi một “main loop”, nếu kết thúc hoàn hảo, đặt cờ trạng thái lên (Flagi set = TRUE). Tất cả các main loop thực hiện tối đa trong 35 micro giây. Sau vòng cuối cùng là đoạn mã kiểm tra : Nếu tất cả các Flags đều là TRUE, khởi động chu kì watchdog mới (50 micro giây), nếu Flags = FALSE, ghi nhận sự cố và đặt tất cả Flags = FALSE, watchdog không được khởi động lại (kick the dog) trong thời gian 50 micro giây, đầu ra của bộ đếm watchdog sẽ kích hoạt RESET hệ thống Câu hỏi 4.9 :Dưới đây là mô hình của hệ điều hành thời gian thực (RTOS) và hệ điều hành chuẩn, chung cho máy tính. Sự khác nhau là ở vị trí cài đặt trình điều khiển thiết bị (device driver). Hãy giải thích lí do của sự khác biệt đó ? Đáp án: Hệ điều hành thời gian thực – RealTime Operating Systems(RTOS), là phần mềm điềukhiển chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tàinguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵnsàng cao và khả năng tự kiểm soát một cách chính xác Sự khác biệt điển hình là hệ thống điều hành được nạp và thực thi đầu tiên khi hệ thống bắt đầu khởi động và được thực hiện trực tiếp bởi bộ xử lý của hệ thống. Hệ thống điều hành được viết để phục vụ điều khiển bộ xử lý cũng như các tài nguyên khác trong hệ thống bởi vì nó sẽ đảm nhiệm chức năng quản lý và lập lịch các quá trình sử dụng CPU và cùng chia sẻ tài nguyên. Một phần của RTOS được gọi là bộ lập lịch, lưu vết các trạng thái của mỗi tác vụ và quyết định một tác vụ duy nhất sẽ đi vào trạng thái Running. Không giống như bộ lập lịch trong Windows hay UNIX, bộ lập lịch trong hầu hết các RTOS là khá đơn giản: Chúng nhìn vào mức ưu tiên được gán tới mỗi tác vụ và giữa những tác vụ đang sẵn sàng một tác vụ có mức ưu tiên cao nhất sẽ được thực hiện. Bộ lập lịch sẽ phục vụ tác vụ nào có mức ưu tiên cao hơn trong khi các tác vụ ưu tiên thấp hơn sẽ đợi cho đến khi giải phóng bộ xử lý khỏi tác vụ ưu tiên cao hơn. Bộ lập lịch giúp chúng ta biết tác vụ nào phải làm trước khi chúng ta thiết lập thứ tự ưu tiên. Câu hỏi 4.9 : Dưới đây là mô hình của hệ điều hành thời gian thực (RTOS) và hệ điều hành chuẩn, chung cho máy tính. Sự khác nhau là ở vị trí cài đặt trình điều khiển thiết bị (device driver). Hãy giải thích lí do của sự khác biệt đó ? Trả lời: - Hệ điều hành thời gian thực (Real-Time Operating Systems RTOS), là loại hệ điều hành hỗ trợ để xây dựng các hệ thống thời gian thực. RTOS là phần mềm chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao, mềm dẻo và có tính cấu trúc và khả năng tự kiểm soát một cách chính xác. - Sự khác biệt điền hình là: hệ thống điều hành được nạp và thực thi đầu tiên khi hệ thống bắt đầu khởi động và được thực hiện trực tiếp bởi bộ xử lý của hệ thống. Hệ điều hành được viết để phục vụ điều khiển bộ xử lý cũng như các tài nguyên khác trong hệ thống bởi vì nó sẽ đảm nhiệm chức năng quản lý và lập lịch quá trình sử dụng CPU và cùng chia sẻ tài nguyên. - Một phần RTOS được gọi là bộ lập lịch, lưu hết các trạng thái của mỗi tác vụ và quyết định một tác vụ duy nhất sẽ đi vào trạng thái Running. Không giống như bộ lập lịch trong windows hay UNIX, bộ lập lịch trong hầu hết các RTOS là khá đơn giản; Chúng nhìn vào mức ưu tiên được gán tới mỗi tác vụ và giữa tác vụ đang sẵn sàng một tác vụ có mức ưu tiên cao nhất sẽ được thực hiện. Bộ lập lịch sẽ phục vụ tác vụ nào đó có mức ưu tiên cao hơn trong khi các tác vụ ưu tiên thấp hơn sẽ đợi cho đến khi giải phóng bộ xử lý khỏi tác vụ ưu tiên cao hơn. Bộ lập lịch giúp chúng ta biết tác vụ nào phải làm trước khi thiết lập thứ tự ưu tiên. - Hệ điều hành của máy tính bao gồm các drivers cho các ngoại vi tích hợp với máy tính như card màn hình, card âm thanh… - Hai thành phần chính trong thiết kế hđh thời gian thực: phần hạt nhân (kernel) và các chương trình hệ thống. Hạt nhân đó chính là lõi của hệ điều hành. Phần hạt nhân đảm nhiệm chức năng lập lịch, đồng bộ và bảo vệ hệ thống bởi việc sử dụng sai, xử lý ngắt… điều khiển phần cứng bao gồm ngắt, các thanh ghi điều khiển, các trạng thái và các bộ định thời gian. Nó nạp các phần mềm đk thiết bị để cung cấp các tiện ích chung và phối hợp các hoạt động vào ra với hệ thống. Phần hạt nhân có vai trò điều khiển rất quan trọng để đảm bảo tất cả các phần của hệ thống có thể làm việc ổn định và thống nhất. - RTOS phải quản lí chi phí thời gian chạy tác vụ và lập lịch để chạy các tác vụ. + Có sự khác biệt khi cài đặt TĐKTB, các tác vụ sẽ thao tác các thiết bị, chứ không phải các thiết bị hợp nhất trong nhân hệ điều hành -HĐH chuẩn: các TĐKTB có thể là nằm trong nhân, Các phần mềm trung gian, ứng dụng ở lớp trên và kết nối vào nhân qua giao diện lập trình API -GHT, ngắt mềm. - RTOS với nhân thời gian thực: các TĐKTB không phải là thành phần nhúng trong nhân, được đặt trên nhân và chỉ có các TĐKTB cần thì đưa vào hệ thống. Các phần mềm trung gian và ứng dụng đặt ngay trên các TĐKTB, chứ không thông qua API như HĐH đa năng. Điều này là rõ ràng và hợp lí, vì các thiết bị nối trực tiếp vào hệ thống để nhân điều khiển trực tiếp thiết bị, đảmbảo chi phí thời gian là ít nhất. Câu hỏi 4.10 : Có thể nói trong hệ thời gian thực, hầu hết các hoạt động xử lí đều do bộ lập biểu kiểm soát (như hình dưới). Hãy giải thích tại sao như vậy ? Thế nào là một hệ thống nhúng thời gian thực ? Trả lời: 166 A. Vì : * Điều phối chạy chương trình bằng lập lịch (schedule) - Mục đích: Để đảm bảo được cơ chế thực thi chia sẻ tài nguyên hữu hạn và thỏa mãn yêu cầu thời giam thực. - Nhiệm vụ của bộ lập lịch: Lập lịch và kiểm soát tác vụ Lập lịch là một phép thực hiện phân bổ và gán quy trình thực thi các tác vụ cho bộ xử lý sao cho mỗi tác vụ được thực hiện hoàn toàn. Như vậy công việc của lập lịch là tìm kiếm một giản đồ phân bố thời gian thực thi theo kiểu đa nhiệm hợp lý với các điều kiện ràng buộc cho trước. Hay nói cách khác là lập lịch phải xử lý thông tin điều kiện để quyết định và điều phối thực hiện tiến trình/tác vụ. - Trong hệ thời gian thực, có một rằng buộc cho việc thực hiện tiến trình/ tác vụ đó là hạn chót (deadline)- chính là thời điểm cuối cùng phải cho một đáp ứng. giữa nhiều tác vụ, bộ lập lich sẽ phải thực hiện bài toán tối ưu về + Thời gian đáp ứng (response time) + Hiệu suất thực hiện (số lượng công việc thực hiện xong trong một đơn vị thời + Sự công bằng và thời gian chờ đợi (các tác vụ không phải chờ đợi lâu. - Quản lí tác vụ thông qua lập biểu. Hầu hết các loại tác vụ đều xuyên qua lập biểu. Vì các hoạt động xử lí đều do bộ lập biểu kiểm soát liên quan đến bộ giám sát định thời (watch timer): là đồng hồ thời gian cúng (dùng cho các bộ đếm điện tử) với các ứng dụng sau: Làm đồng hồ thời gian thực (real time clock – RTC) cho hệ thống Khởi động/ khởi động lại một sự kiện sau thời gian đặt trước Tạo khung cửa sổ thời gian cho một sự kiện Phân giải khoản thời gian giữa 2 sự kiện Chó canh chừng - Việc lập lịch trước có một số các ưu điểm sau: - Tác vụ tiếp theo có thể được lựa chọn thực thi trong khoảng thời gian là hằng số - Khả năng đáp ứng yêu cầu thời gian thực có thể được biết trước và được đảm bảo B. Thế nào là một hệ thống nhúng thời gian thực ? * Khái niệm:. là HTN được tạo thành khi có phần cứng nhúng và phần mềm hệ thống là RTOS. Mối quan hệ giữa hệ thời gian thực và HTN như hình dưới đây: Hình cho thấy rằng không phải tất cả HTN đều là HTN thời gian thực và ngược lại không phải tất cả hệ thời gian thực là HTN. Và phần chung chính là biểu diễn của HTN thời gian thực. - Có hai loại thời gian thực: + Thời gian thực cứng; có dung sai ( so với hạn chót) xấp xỉ = f. Hệ có phản ứng, chính xác không để xảy ra tình trạng tới hạn, độ trễ hệ thống rất nhỏ, sự kiện có tính chu kỳ, khi thực hiện mã thực thi tính thời gian thực thi tc < tcmfical + Thời gian thực mềm: thời hạn chót mềm dẻo (dung sai: xác định, chấp nhận) tính tích lũy: do sự xê dịch tiến về phía trước -> khử sai tích lũy ứng dụng: tùy phân loại ứng dụng mà xếp loại. Câu hỏi 4.11 : Thế nào là phần mềm trung gian trong một hệ thống nhúng ? Trong các hình sau a, b, c, d, hình nào sai khi đặt phần mềm trung gian vào các lớp kiến trúc phần mềm của hệ thống nhúng ? Trả lời : A. PMTG * Khái niệm: là bất kỳ phần mềm hệ thống nào ngoài nhân của HĐH(OS kernel), device driver hoặc phần mềm ứng dụng. - Là phần mềm tiện ích, tích hợp thêm vào phần mềm hệ thống (tích hợp vào HĐH nhưng không vào nhân HĐH), không hợp nhất với phần mềm ứng dụng - Trong HTN, PMTG được coi như phần mềm hệ thống, là cầu nối giữa các phần mềm khác của phầm mềm hệ thống, cung cấp các dịch vụ cho các phần mềm ứng dụng. HTN có thế có PMTG hay là không. - ở vị trí trung gian,các PMTG làm giảm đáng kể tính phức tạp của các ứng dụng, vì các tiện ích đã có sẵn và chia sẻ ngay trong PMTG. Tuy nhiên khi đưa PMTG vào hệ thống cũng là tăng thêm một lớp xếp chồng, có tác động đáng kể vào tính mở rộng, hiệu năng của HTN, vì PMTG tác động vào tất cả các lớp phần mềm khác. - Hầu hết các loại PMTG hệ thống nhúng đều rơi vào 2 dạng sau: + Đa năng (general-purpose): được cài đặt trên nhiều HTN khác nhau, ví dụ giao thức mạng, máy Java ảo (JVM). Hai thành phần này đều có trên các thiết bị mạng hiện đại. như router, Concentrator, Switch, các thiết bị dạng SOHO,… + Xác định (market-specific): dành cho các yêu cầu riêng biệt cho các HTN riêng biệt. Ví dụ PMTG trên các máy thu hình kĩ thuật số hỗ trợ kết nối mạng TCP/IP, được xếp trên HĐH và JVM. B) Hình a sai. Vì Phần mềm trung gian không hợp nhất vào phần mềm ứng dụng, là để chia sẻ sử dụng cho nhiều ứng dụng đồng thời, hay tái sử dụng ở các môi trường HĐH khác nhau. Trong HTN, PMTG được coi như phần mềm hệ thống. Trong một thời gian ngắn Middleware hệ thống được đặt bên trong các bộ điều khiển thiết bị hay được cài đặt ở trên cùng của HĐH, và thi thoảng có thể hợp nhất lại bên trong chính HĐH. PMTG giống như cầu nối giữa các phần nềm khác của phần mềm hệ thống, cung cấp các dịch vụ cho các phần mềm ứng dụng như: an ninh hệ thống, kết nối mạng, tryền thông cục bộ giữa các ứng dụng trong hệ thống, mang lại sự linh hoạt khi triển khai các ứng dụng. Với vị trí “trung gian”, các PMTG làm giảm đáng kể tính phức tạp của các ứng, vì các tiện ích đã có sẳn và chia sẻ ngay trong PMTG. Tuy nhiên khi đưa PMTG vào hệ thống cũng là tăng thêm một lớp xếp chồng, có tác động đáng kể vào tính mở rộng, hiệu năng của các HTN, vì PMTG tác động vào tất cả các lớp phần mềm khác. Phần mềm trung gian không hợp nhất vào phần mềm ứng dụng, là để chia sẻ sử dụng cho nhiều ứng dụng đồng thời, hay tái sử dụng ở các môi trường HĐH khác nhau. C. Các thiết bị mạng lớp 3 như chuyển mạch lớp 3 (SW L3), định tuyến (Router), ADSL … là các thiết bị nhúng. Phần mềm mạng lớp 2 và lớp 3 là các phần mềm trung gian. Hãy chọn một mô hình trong các mô hình trên được cho là phù hợp để xây dựng các hệ thống nhúng đề cập ?chọn ý d - Hợp nhất PMTG vào HĐH (nhưng không vào nhân HĐH). PMTG có sẵn khi bán thiết bị và đã hợp nhất với HĐH, mang lại cho người dùng có ngay các tiện ích khi sử dụng. Vì vậy, chọn mô hình d là phù hợp để xây dựng các hệ thống nhúng đề cập, khi sử dụng PMTG cho phép giảm thiểu được sự phức tạp của các ứng dụng bởi cở sở hạ tầng phần mềm trung gian, PMTG này ứng dụng với nhiều mục đích để đáp ứng được tính phức tạp, tính bảo mật, tính linh động, tính linh động, tính liên kết, truyền thông với nhau, tính tương thích giữa các ứng dụng Câu hỏi 5.1:188, 22 làm lại Nêu mô hình phần mềm của một hệ thống nhúng ? Đặc tả các lớp của mô hình phần mềm hệ thống nhúng đó ? Gợi ý : Đặc tả chức năng các lớp phần mềm (ứng dụng, trung gian, hệ thống, điều khiển thiết bị+BIOS) Trả lời : Nêu mô hình phần mềm của một hệ thống nhúng ? Các thành phần phần mềm của hệ thống nhúng gồm: Trình điều khiển thiết bị, Hệ điều hành thời gian thực, Middleware và các phần mềm ứng dụng Mô hình phần mềm của một hệ thống nhúng + Phần cứng : Vi xử lý, bộ nhớ, tụ điện, mạch tích hợp, bảng mạch in, connector… Đây là thành phần bắt buộc phải có cho tất cả các hệ thống nhúng. Quyết định hành vi(chức năng) của một hệ thống nhúng. Nêu chức năng các khối (Ghép nối với thiết bị, ADC/DAC, Ghép nối BUS hệ thống, CPU, BUS CPU, RAM, ROM/NVRAM, ghép nối mở rộng ) Ghép nối với thiết bị: Phối hợp các thiết bị , có chức năng chuyển hoá các thông tin từ cảm biến thành tín hiệu điện để số hoá Các bộ số hóa D/A: Có chức năng chuyển đổi tín hiệu tương tự sang tín hiệu số Bộ tương tự hóa A/D: Chuyển đổi tín hiệu số thành tín hiệu tương tự Ghép nối BUS hệ thống: ghép nối với các BUS địa chỉ Bộ xử lý(CPU): Điều khiển toàn bộ sự hoạt động của hệ thống, thực hiện chức năng xử lý của dữ liệu theo nguyên tắc thực hiện chương trình máy tính cài trong bộ nhớ ROM hay nạp vào bộ nhớ RAM BUS CPU: Trao đổi dữ liệu giữa BUS địa chỉ, BUS dữ liệu, BUS điều khiển ROM: bộ nhớ truy cập ngẫu nhiên, Là bộ nhớ chỉ đọc,nó không làm mất nội dung khi mất điện, có tốc độ truy cập cao RAM: Là bộ nhớ ghi/đọc, có tốc độ truy cập dữ liệu cao Ghép nối với các hệ thống khác: Liên kết các HTN khác, mạng dữ liệu, trung tâm điều khiển SCADA,… Ghép nối mở rộng: ghép nối các thiết bị , cổng mở rộng Môi trường hoạt động: nơi sử dụng HTN Cảm biến: Ghi nhận thông tin công nghệ (vị trí, quay vòng, tốc độ, nhiệt độ, áp suất, kích thước(cao, dài, sâu)…) + Phần mềm hệ thống : không bắt buộc phải có. Device driver : UART, Ethernet, ADC… Hệ điều hành nhúng : eCos, ucLinux, BIOS… Quản lý bộ nhớ, quản lý tiến trình, quản lý chia sẽ tài nguyên. Có thể tái sử dụng trong HTN khác. Trình điều khiển thiết bị (Device Driver): * Định nghĩa Trình điều khiển thiết bị: - Phần mềm giao tiếp và điều khiển trực tiếp phần cứng nhúng để khởi tạo và quản lý nó được gọi là các trình điều khiển thiết bị - Tất cả các hệ thống nhúng đều yêu cầu phải có phần mềm điều khiển thiết bị trong lớp phần mềm hệ thống - Các trình điều khiển thiết bị là các thư viện phần mềm khởi tạo phần cứng và quản lý truy cập tới phần cứng bởi các lớp phần mềm cao hơn. Các trình điều khiển thiết bị liên lạc giữa phần cứng và hệ điều hành, Middleware và các lớp ứng dụng * Chức năng: : có 2 loại trình điều khiển phổ biến: - Trình điều khiển xác định kiến trúc: quản lý phần cứng được tích hợp trong bộ xử lý chính. Ví dụ các trình điều khiển xác định kiến trúc khởi tạo và cho phép các thành phần với một bộ xử lý chính bao gồm bộ nhớ on-chip, các bộ quản lý bộ nhớ tích hợp, và phần cứng điểm động - Trình điều khiển chung(xác định bảng mạch) quản lý phần cứng được đặt trên bảng mạch và không tích hợp vào bộ xử lý chính. - Trong trình điều khiển chung thường có các phần mã nguồn xác định kiến trúc, bởi vì bộ nhớ chính là bộ điều khiển trung tâm và truy nhập nhanh tới mọi thứ trên bảng mạch thông qua bộ xử lý chính. + Tất cả các trình điều khiển thiết bị thường được tạo ra bởi sự kết hợp của tất cả hoặc một số chức năng sau: - Khởi tạo phần cứng lúc bật nguồn hoặc Reset. -Cấu hình phần cứng vào trạng thái tắt nguồn. - Cho phép phần mềm khác tắt phần cứng. - Cho phép phần mềm khác bật phần cứng. - Cho phép phần mềm khác truy nhập (khóa) duy nhất với phần cứng. - Cho phép phần mềm khác giải phóng (mở khóa) phần cứng. - Cho phép phần mềm đọc dữ liệu từ phần cứng. - Cho phép phần mềm khác viết dữ liệu vào phần cứng. - Cho phép phần mềm khác cài đặt phần cứng mới. - Cho phép phần mềm tháo cài phần cứng. * Đặc điểm chung: - Tuy nhiên trình điều khiển chung cũng quản lý phần cứng bảng mạch mà không xác định cho bộ xử lý cụ thể đó, nghĩa là trình điều khiển chung có thể được cấu hình để chạy trên một số kiến trúc chứa phần cứng bảng mạch liên quan tới trình điều khiển được viết - Trình điều khiển chung bao gồm mã khởi tạo và quản lý truy cập tới các thành phần chính còn lại của bảng mạch, bao gồm các bus bảng mạch(I2C, PCI,PCMCIA,…) bộ nhớ of-chip(các bộ điều khiển, cache mức 2+, flash,…),và I/O off-chip(Ethernet,RS-232, hiển thị, chuột,…) Phần mềm trung gian. Middleware software * KN: + Middleware software là bất kỳ phần mềm hệ thống nào ngoài OS kernel, device driver hoặc phần mềm ứng dụng + Middleware hệ thống nhúng là phần mềm hệ thống thường nằm trên device drives hoặc nằm phía trên của OS, hoặc đôi khi được sáp nhập với chính OS + Middleware software cũng là phần mềm điều hành và phục vụ phần mềm ứng dụng nhau + Middleware là một lớp cung cấp các kỹ thuật mềm dẻo, bảo mật, di chuyển, kết nối, truyền thông,…giữa các ứng dụng. + Sử dụng middleware là cho phép độ phức tạp của các ứng dụng bằng việc tập trung hạ tầng phần mềm bị dư thừa được tìm thấy trong lớp ứng dụng + Nói chung middleware có tác động đối với hệ thống nhúng tại tất cả các lớp * CN: - Sử dụng Middleware là cho phép độ phức tạp của các ứng dụng bằng việc tập trung hạ tầng phần mềm bị dư thừa được tìm thấy trong lớp lớp ứng dụng. - Middleware có tác động đối với hệ thống nhúng tại tất cả các lớp. Hệ điều hành OS: * Khái niệm: - Hệ điều hành là một chương trình quản lý các phần cứng hệ thống. Nó cũng cung cấp một cơ sở cho cá chương trinh ứng dụng và hoạt động như một phương tiện trung gian giữa người sử dụng với hệ thống. có rất nhiều phương thức để hệ điều hành thực hiện các chức năng trên - Có thể nhìn hệ điều hành dưới 2 quan điểm: quan điểm người sử dụng và quan điểm hệ thống - Quan điểm người sử dụng: mục tiêu hệ điều hành là tối đa hóa công việc người sử dụng đang thực hiện, như dễ sử dụng, tối ưu tài nguyên - Quan điểm hệ thống, một hệ điều hành có các chức năng: * Chức năng: quan điểm hệ thống, một hệ điều hành có các chức năng - Là một bộ cấp phát tài nguyên: cpu, memory space, file-storace space, I/O devices - Giải quyết xung đột khi có nhiều yêu cầu đến cùng một tài nguyên(đốivới các hệ thống đa nhiệm) - Là một chương trình điều khiển quản lý việc thực thi các chương trình người sử dụng để tránh lổi và cải thiện việc sử dụng máy tính - Điều khiển hoạt động của các thiết bị I/O * Có thể phân loại hệ điều hành làm 7 loại: Hệ điều hành cho Mainframe, Hệ điều hành cho Server, Hệ điều hành đa vi xử lý, Hệ điều hành cho máy tính cá nhân, Hệ điều hành nhúng, Hệ điều hành thời gian thực, Hệ điều hành cho thẻ thông minh + Phần mềm ứng dụng : không bắt buộc phải có. Quyết định hành vi (chức năng) của hệ thống nhúng. Khó tái sử dụng trên một HTN khác. các phần mềm ứng dụng : Phần mềm ứng dụng chính là mục đích để chạy trên HTN. HTN được ứng dụng ở nhiều lĩnh vực khác nhau, do đó các ứng dụng là rất cụ thể, và được phát triển bởi nhà chế tạo ra HTN. Ví dụ trong công nghiệp chế tạo các thiết bị cho tự động hóa, robot,… các HTN có những bài toán riêng để giải quyết, tức là phải phát triển phần mềm cho bài toán đó. Phần mềm ứng dụng ở đây là các phần mềm liên quan tới Internet: Web server, Navigation, e-mail, Video-On-Demand … - Các phần mềm ứng dụng là thể hiện “mềm” các ý tưởng khi thiết kế một HTN và đó chính là lí do phát triển HTN. HTN ứng dụng cho mục đích gì, cần tạo ra phần mềm ứng dụng cho HTN đó, chính vì thế số lượng, chủng loại, qui mô, mức độ “thông minh” ngày nay rất lớn, và phát triển rất nhanh. Câu hỏi 5.2: Mô hình phần mềm hệ thống nhúng có thể biểu diễn bởi 3 lớp : 25 -Trên cùng là Lớp phần mềm ứng dụng, là tùy chọn (optional). - Ở giữa là Lớp phần mềm hệ thống, là tùy chọn (optional). - Dưới cùng là Lớp phần cứng, là cần thiết phải có (required). Nói vậy là đúng hay chưa đúng, vì sao ? Hãy giải thích ! Trả lời : đúng - Khi nói về kiến trúc một hệ thống, thường ta đề cập tính tổng quát và những chức năng cơ bản. Như vậy ở mức độ tổng quát, các lớp phần cứng và phần mềm được đề cập như các thành phần (element) hợp thành. Các thành phần kiến trúc có thể hợp nhất bên trong thiết bị nhúng hoặc tồn tại bên ngoài và tương tác với các thành phần bên trong theo một cách nào đó. Ở cách nhìn kiến trúc, thì kiến trúc được biểu diễn bới các cấu trúc. Mỗi cấu trúc bao gồm một tập hợp các thành phần đặc trưng, các thuộc tính và những đặc tả về mối quan hệ bên trong các thành phần đó. - Kiến trúc lớp xếp chồng có đặc tính là mỗi lớp chỉ sử dụng chức năng(hay dịch vụ) của tầng dưới nó, đồng thời chỉ cho phép tầng trên sử dụng các chức năng (dịch vụ) của mình. Kiến trúc này có lợi thế về an ninh, bền vững, đơn giản về thiết kế, dễ nâng cấp (các dịch vụ), thực hiện mỗi lớp và khả năng nâng cấp “nóng” ngay cả khi hệ thống đang hoạt động. Ví dụ nguyên lí này ta thấy ở mô hình mạng chuẩn OSI (Open Systems Interconnection), kiến trúc của hệ điều hành Unix/Linux. - Mô hình một NTH cũng được đặc tả theo lớp kiến trúc để đảm bảo về độ tin cậy, đơn giản khi hoạt động: Câu hỏi 5.3: 128 Phát thảo mô hình hoạt động với hệ có sử dụng ngắt kiểu vector ? Đặc tả cách hoạt động của mô hình đó ? Trả lời : A . Hình vẽ nguyên lí B . Mô tả nguyên lí hoạt động : Trong trường hợp yêu cầu ngắt được gửi tới CPU, xử lý của CPU gồm các bước sau: Quá trình thực hiện ngắt : - Khi cần trao đổi thông tin, thiết bị ngoại vi gửi tín hiệu yêu cầu ngắt ((Interrupt Request-IRQ) tới đầu vào INTR của CPU. - CPU thực hiện nốt lệnh đang thực hiện và trả lời bằng tín hiệu nhận biết yêu cầu ngắt (INTA) - Chương trình lúc này bị tạm dừng (ngắt) và CPU chuyển sang thực hiện chương trình con phục vụ ngắt (Thực thi ISR của ngắt đó),tức là chương trình con trao đổi thông tin với thiết bị ngoại vi yêu cầu ngắt. - Sau khi xong công việc phục vụ ngắt, CPU quay về thực hiện tiếp chương trình kể tử lện tiếp theo sau khi ngắt. - Các tín hiệu yêu cầu phục vụ ngắt từ một thiết bị ngoại vi bất kỳ được gửi tới chấp nhận yêu cầu ngắt của CPU có thể thông qua một khổi điều khiển ngắt. Câu hỏi 5.4 : Phát thảo mô hình hoạt động với với DMA ? Truy nhập trực tiếp vào bộ nhớ (Direct Memory Access-DMA) Đặc tả cách hoạt động của mô hình đó ? Trả lời: A . Hình vẽ nguyên lí ? Truy nhập trực tiếp vào bộ nhớ (Direct Memory Access-DMA). - Giải quyết trao đổi dữ liệu giữa thiết bị và Ram - Tốc độ cao, khối lượng dữ liệu trao đổi lớn - Mạch IC hỗ trợ DMAC - “ Thực thi” Khi chấp nhận cho DMA , cpu”tách” khỏi bus hệ thống, DMAC kiểm soát bus hệ thống, tạo ra địa chỉ, tạo ra tín hiệu điều khiển, hỗ trợ quá trình ghi/đọc RAM B . Mô tả nguyên lí hoạt động Quá trình thực hiện DMA: 1) CPU làm việc bình thường 2) Khi thiết bị ngoại vi muốn chuyển số liệu trực tiếp với bộ nhớ thì gửi yêu cầu tới DMAC qua tín hiệu DRQx ( DMA Reqest thứ x, mỗi DMAC có khả năng nhận 4 DRQ). 3) Bộ điều khiển DMAC chuyển yêu cầu này tới CPU qua tín hiệu HRQ: Yêu cầu CPU “tách ra “ khỏi BUS hệ thống. 4) CPU thực hiện nốt chu kỳ máy đang thực hiện, treo BUS và trả lời DMAC bằng tín hiệu HLDA: Chấp nhận và đã treo BUS. 5) DMAC trả lời thiết bị vào/ra bằng tín hiệu DACKx, DMAC quản lí BUS hệ thống và phát sinh các tín hiệu địa chỉ lên BUS địa chỉ, hướng tới bộ nhớ, 6) Phát các tín hiệu điều khiển: MEMRD/, MEMWR/, IORD/, IOWR/, để thực hiện DMA vào: đọc thiết bị/ghi bộ nhớ hay DMA ra: dọc bọ nhớ/ghi ra thiết bị. 7) Điều khiển chuyển số liệu giữa bộ nhớ và thiết bị vào/ra, chạy đồng bộ theo BUS-clock. Số liệu chuyển giữa bộ nhớ và thiết bị vào/ra thường là cả một khối, có độ dài tùy ý qua lập trình. 8) Khi chuyển xong số liệu DMAC đưa tín hiệu TC hay EOP (Terminal Count, End of Operation-EOP) thành tích cực để báo một quá trình DMA kết thúc (tín hiệu TC đóng vai trò một ngắt khi sử dụng để thông báo cho CPU). DMAC treo BUS, DMAC hũy HRQ. CPU hũy HLDA, CPU trở lại quản lí BUS hệ thống. Chu kì DMA hoàn tất. - Qui trình chạy DMA xảy ra rất nhanh, chỉ phụ thuộc vào khả năng trao đổi của thiết bị. Câu hỏi 5.5: Thế nào ghép nối do CPU chủ động ? Cho vài ví dụ ? Khi các ứng dụng chủ động kích hoạt các trao đổi dữ liệu với thiết bị, CPU thực hiện. Ví dụ ứng dụng: Khi kiểm soát nhiệt độ, thiết bị nhiệt luôn có số liệu để đo và xử lý B . Có mấy kỉ thuật để triển khai ghép nối do CPU chủ động ? Có 2 kỹ thuật ghép nối CPU chủ động : + Vào/ra số liệu hông điều i kện, điều hiển bằng chương trình Vào/ra số liệu không điều kiện có các đặc điểm như sau: - CPU chuyển số liệu thông qua chương trình - CPU giả thiết TB vào/ra luôn sẵn sàng chuyển số liệu - Dữ liệu đọc vào CPU qua cổng sau đó lưu lại ở bộ nhớ cho các xử lý tiếp theo. - Việc chuyển số liệu được thực hiện giữa các thanh ghi của CPU (ACC) và thanh ghi (cổng ghép nối) của TB vào/ra, sau đó lƣu lại ở bộ nhớ cho các xử lý tiếp theo. +Vào/ra số liệu có điều k iện, điều khiển bằng chương trình Khi ghép nối với các thiết bị mà thiết bị đó cần có thời gian để hoàn thành một xử lý (tác vụ), trong qúa trình ghép nối, CPU cần ghi nhận trạng thái sẳn sàng của thiết bị để đánh giá và ra quyết định tiếp theo. Quá trình kiểm tra trạng thái đôi khi phải thực hiện một vài lần trƣớc khi quyết định tiếp tục hay từ bỏ trao đổi dữ liệu với thiết bị. Quy tắc này gọi là quy tắc đối thoại. C. Thế nào là ghép nối do ngoại vi chủ động ? Cho ví dụ ? Thiết bị chủ động kích hoạt yêu cầu trao đổi dữ liệu, CPU đáp ứng. Ví dụ chế độ standby và đánh thức bằng wake-from-sleep interrupt.Another benefit of using interrupts is that in some processors you can use a wake-from-sleep interrupt, đặc biệt khi hệ nuôi bằng pin. D. Có mấy kĩ thuật để triển khai ghép nối do ngoại vi chủ động ? Có 2 kỹ thuật để triển khai ghép nối do ngoại vi chủ động: + Ngắt: Ngắt là việc CPU dừng chương trình chính đang thực hiện để thực hiện một chương trình con khác là chương trình con phục vụ ngắt (ISR Intenupt Service routine). Có hai loại ngắt cứng và ngắt mềm. Vào ra dữ liệu bằng ngắt cứng là phương pháp vào/ra dữ liệu trong đó thiết bị vào/ra chủ động quá trình vào/ra dữ liệu nhờ hệ thống ngắt cứng. Ngoài ra còn có khái niệm ngắt mềm, sử dụng một nguyên lí mà hệ điều hành hỗ trợ thông qua lệnh máy tính, giúp tạo ra sự chuyển xử lý (chƣơng trình) tạm thời đến một xử lý đột xuất + Truy nhập trực tiếp vào bộ nhớ (Direct Memory Access-DMA) Phương pháp vào/ra dữ liệu kiểu DMA, là quá trình vào/ra dữ liệu trực tiếp giữa bộ nhớ và thiết bị ngoại vi không qua CPU. Trong quá trình DMA việc chuyển dữ liệu không được điều khiển bởi CPU mà bởi một thiết bị phần cứng là bộ điều khiển DMAC (DMA Controller). E. Dựa vào tiêu chí nào để lựa chọn một mô hình ghép nối cho phù hợp ? Cho ví dụ ? Câu hỏi 5.6: Hãy mô tả tổ chức bộ nhớ của dòng CPU kiểu Havard ? Tách riêng các bộ nhớ dữ liệu (RAM) và bộ nhớ chƣơng trình với các bus riêng rẽ để truy cập vào bộ nhớ dữ liệu (RAM) và bộ nhớ chƣơng trình (NVM Non Volatile Memory: ROM, FLASH) chứa phần mềm nhúng (hệ điều hành, Device drivers, ứng dụng nhúng ). ü Các bus điều hành độc lập, các chỉ dẫn chƣơng trình và dữ liệu có thể đƣợc đƣa ra cùng một lúc, cải thiện tốc độ so với thiết kế với chỉ một bus. ü Phân biệt rõ ràng bộ nhớ dữ liệu và bộ nhớ chƣơng trình, CPU có thể vừa đọc một lệnh, vừa truy cập dữ liệu từ bộ nhớ cùng lúc. Trong kiến trúc Havard, mã chương trình chứa ở RAM hay EPROM ? Trong kiến trúc Havard, mã chương trình chứa o EPROM Trong kiến trúc Havard, có thể truy nhập đồng thời vào RAM và EPROM ? Trong kiến trúc Havard, có thể truy nhập đồng thời vào RAM và EPROM  Trong kiến trúc Havard , nói rằng số bit cho dữ liệu và số bit cho lệnh có độ dài khác nhau, ví dụ dữ liệu 8 bit, trong khi lệnh có thể dài tới 32 bit, đúng hay sai ? Đúng Sự khác nhau cơ bản của kiến trúc Von Neumann và kiến trúc Havard thể hiện ở điểm nào ? - Máy tính dựa trên kiến trúc Harvard có khả năng đạt đƣợc tốc độ xử lý cao hơn máy tính dựa trên kiến trúc von-Neumann do kiến trúc Harvard hỗ trợ hai hệ thống bus độc lập với băng thông lớn hơn . - Havard: Hệ thống BUS cho bộ nhớ, thực hiện lệnh đồng thời trên cả bộ nhớ chương trình và bộ nhớ dữ liệu. -Von Neumman: Thực hiện tuần tự các lệnh tức là không thể cùng lúc thao tác lệnh và dữ liệu trên bộ nhớ. không thể thực hiện cùng một lúc vì nó sử dụng chung một đường truyền và bộ nhớ. CPU sử dụng kỹ thuật đường ống pipeline nhưng vẫn tuần tự. Câu hỏi 5.7 : Không tìm thấy trong sách và trên mạng A . Đặc tả các khối chức năng B . Là Module thông minh, phải lập trình chế độ hoạt động C . PIO 8255, DMA 8237, PIC 8259, UART 8251, 16550, … D . Phải lập trình chế độ hoạt động trước khi kích hoạt E . - Là loại lệnh cần nạp vào IO module Lệnh sẽ được IO module giải mã để thực hiện đúng chế độ lạp trình cho nó. Câu hỏi 5.8 : Bài tập làm ra giấy A4 Câu hỏi 5.9: Cho trước một bảng các giá trị để thiết kế bộ nhớ RAM với chip loại 4KB/chip sau đây: A19 - A16 A15 A14 A14 A12 A11 A10 A9 A8 A7 A8 A5 A4 A3 A2 A1 A0 Địa chỉ đầu/địa chỉ cuối (HEX) ? Chip 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 F8000: F8FFF Chip 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 F9000:F9FFF Chip 2 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FA000: FAFFF Chip 3 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FB000: FBFFF Chip 4 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FC000: FCFFF Chip 5 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FD000: FDFFF Chip 6 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FE000: FEFFF Chip 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FF000 FFFFF Tính địa chỉ đầu và địa chỉ cuối của mỗi chip (điền vào bảng)? Đã tính ở trong bảng Lên sơ đồ thiết kế module nhớ này.( làm ra giấy A4). Câu 5.10 và 5.11 làm ra giấy A4 Câu hỏi 5.14 : Nêu kịch bản khởi động chạy phần mềm HTN từ ROM, RAM cho dữ liệu Một số HTN có giới hạn bộ nhớ, do đó hệ sẽ khởi động trực tiếp từ ROM. Trong trƣờng hợp này sẽ không có quá trình copy mã lệnh vào RAM để chạy. Tuy nhiên không gian cho dữ liệu vẫn phải xác điịnh ở RAM (nhớ khi lập trình). Có 2 thanh ghi cơ bản là IP (Instruction register)-thanh ghi lệnh, trỏ vào lệnh tiếp theo sẽ thực hiện (.text) và SP (Stack Pointer), trỏ vào địa chỉ tiếp theo trong ngăn xếp. ngôn ngữ C sử dụng ngăn xếp để truyền các thông số khi kích hoạt một hàm. Vùng ngăn xếp phải ở RAM và SP phải trỏ vào đó khi khởi động CPU. Qui trình khởi động nhƣ sau: 1) Thanh ghi IP đƣợc thiết kế cứng để thực hiện lệnh đầu tiên trong bộ nhớ, đó là reset vector. 2) Reset vector nhảy tới lệnh đầu tiên của phần .text của mã boot (tức boot boot image), .text thƣờng trú trong ROM; CPU dùng IP để thực hiện .text, khởi động bộ nhớ, kể cả RAM. 3) Phần .data của boot image đƣợc copy vào RAM để có thể đọc/ghi. 4) Xác lập .bss trong RAM. 5) Xác lập ngăn xếp .stack trong RAM, khởi động SP trỏ vào địa chỉ đầu của stack. 6) Hoàn tất khâu khởi động, CPU tiếp tục thực hiện các lệnh trong .text cho tới khi hệ thống hoặc shutdown hay RESET. Lƣu ý ở đây là các lệnh đầu ở bƣớc 1) không ở định dạng chuẩn ELF mà đơn giản là mã máy nhị phân sẳn sàng chạy. Nhƣng boot image ở định dạng ELF (viết ra từ công cụ phát triển) nhƣng không có program header và header table, do đó lƣu ý viết mã thực thi sao cho có thể khởi tạo các phần .datta, .bss, .stack trong RAM. ( ví dụ nếu dùng hợp ngữ thì gán nhãn, …). Câu hỏi 5.15 : Nêu kịch bản khởi động chạy phần mềm ở RAM sau khi mã đã copy từ ROM vào RAM Ở kịch bản này, boot loader sẽ chuyển một chƣơng trình nhỏ từ ROM vào RAM và kích hoạt nó chạy. Thƣờng mã chƣơng trình hệ thống trong ROM rất lớn mà đƣợc ghi kiểu nén để nạp vừa ROM, nên boot loader phải gỉai nén trƣớc khi khởi động phần mã này và nó cần không gian nhớ ở RAM để thực hiện. 1) --- đến 6) giống nhƣ ở trên. Môi trƣờng làm việc cho loader đƣợc khởi động ở RAM (3, 4, 5). 7) Loader copy phần mã nén của image vào RAM. 8) –> 10) Copy các phần mã đã giải nén vào các vùng làm việc tạm trong RAM (8, 9, 10) . Hoàn tất giải nén image. Image trong RAM ở hình là đoạn Final Boot image. 10) … 11) Loader chuyển điều khiển cho image bằng một lệnh JMP vào .text (nạp cho IP địa chỉ này trƣớc khi JMP tới đó). 12) Vùng RAM mà loader chiếm khi đƣợc copy từ ROM là tái sử dụng, SP đƣợc tái khởi động để trỏ vào đó và đƣợc dùng nhƣ ngăn xếp cho một chƣơng trình mới nào đó. Vung RAM để giải nén giải phóng để sử dụng khác. Hệ thống đi vào hoạt động Câu hỏi 5.16 : Nêu kịch bản khởi động chạy phần mềm ở RAM sau khi tải xuống từ hệ phát triển (đang phát triển hệ thống). Ch y từ R M sau hi tải xuống từ hệ phát triển (đang phát triển hệ thống) Là kịch bản trong quá trình phát triển. Môi trƣờng phát triển có một PC hổ trợ. Sử dụng để phát triển các phần mềm ứng dụng cho hệ thống nhúng. Phaaffn mềm phát triển nằm trên PC và sẽ tải xuống hệ đích để chạy thử hay nạp vào hệ đích ở pha cuối cùng. Trong RON có một chƣơng trình gọi là Debug Agent đóng vai trò kép nhƣ một loader nhƣ ở các kịch bản trên. 1) …6 ) giống như trước 7) Tải ứng dụng từ PC vào hệ đích. 8) Kiểm tra sự hợp nhất của phần mềm tải xuống. 9) Giải nén ứng dụng nếu cần. 10) … 12 ) chƣơng trình debug tái định vị ứng dụng vào vị trí trong RAM (10, 11, 12). … 13 ) Debug chuyển đuều khirn cho image đã tải xuống. Hệ chạy

Các file đính kèm theo tài liệu này:

  • docĐáp án đề cương môn học Xây dựng hệ thống nhúng Học viện Công nghệ Bưu chính Viễn thông.doc
Tài liệu liên quan