1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về lập trình nhúng trên linux Viết ứng dụng minh hoạ trên LDS2000

100 10 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 1,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ví dụ đối với một bộ điều khiển từ xa chỉ cần tới độ tính toán 100 KIPS và bộ nhớ vài KB, đối với thiết bị điều khiển cần tốc độ 1MIPS, 1MB bộ nhớ và đối với các hệ thống nhúng quân sự t

Trang 1

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

LỜI CẢM ƠN

Thời gian 4 năm đại học trôi thật nhanh, giờ chúng em đã kết thúc khoảng thời gian sinh viên đại học để bước vào thế giới mới, những thử thách mới Lúc này chúng em cảm thấy thật nôn nao nhưng rồi cũng phải nói lời chào tạm biệt

Trước tiên, chúng em xin chân thành cảm ơn các thầy, các cô trong khoa công nghệ thông tin cũng như các thầy, các cô của trường đại học Tôn Đức Thắng

đã dẫn dắt chúng em bước đi trong suốt 4 năm qua

Chúng em cũng xin cảm ơn Thầy Lê Mậu Long đã tạo điều kiện cho chúng

em trong thời gian thực tập và nghiên cứu tại Phân viện Công nghệ Thông tin

Đặc biệt, chúng em xin nói lời cảm ơn sâu sắc tới Thầy Nguyễn Ngọc Tú đã

nhiệt tình hướng dẫn chúng em trong quá trình thực tập, nghiên cứu cũng như giúp chúng em hoàn thành đề tài nghiên cứu của mình

Chúng tôi chân thành cảm ơn những người bạn thân đã giúp đỡ chúng tôi

trong suốt thời gian qua

Cuối cùng, chúng con xin dành những lời cảm ơn sâu sắc nhất tới gia đình

và người thân đã nuôi nấng, ủng hộ và hỗ trợ cho chúng con hằng ngày để chúng

con hoàn thành được nhiệm vụ của mình

Trang 2

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Ngày …….tháng ……năm 2007

Ký tên

Trang 3

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Ngày …….tháng ……năm 2007

Ký tên

Trang 4

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

Mục lục

LỜI CẢM ƠN - 1 -

Chương 1 GIỚI THIỆU ĐỀ TÀI - 10 -

1 Mục tiêu của đề tài - 10 -

2 Phương hướng giải quyết - 11 -

3 Bố cục của luận văn - 11 -

Chương 2 TỔNG QUAN HỆ THỐNG NHÚNG - 12 -

1 Hệ thống nhúng - 12 -

1.1 Khái niệm hệ thống nhúng - 12 -

1.2 Lịch sử phát triển - 13 -

2 Đặc điểm của hệ thống nhúng - 13 -

2.1 Cầu hình hệ thống của hệ thống nhúng - 14 -

2.2 Các công cụ - 14 -

3 Lý thuyết cơ bản trên hệ thống nhúng - 15 -

3.1 Phần cứng - 15 -

3.1.1 Bộ xử lý - 16 -

3.1.2 Thiết bị ngoại vi - 17 -

3.1.3 Ánh xạ bộ nhớ - 17 -

3.1.4 Ánh xạ nhập xuất - 18 -

3.1.5 Giao tiếp của phần cứng - 18 -

3.1.6 Ánh xạ tín hiệu ngắt - 19 -

3.2 Bộ nhớ - 20 -

3.2.1 Các kiểu bộ nhớ - 20 -

3.3 Thiết bị ngoại vi - 24 -

3.3.1 Thanh ghi điều khiển và thanh ghi trạng thái - 24 -

3.3.2 Trình điều khiển thiết bị - 24 -

3.4 Hệ điều hành - 25 -

3.4.1 Đặc điểm của hê điều hành - 25 -

3.4.2 Yêu cầu của hệ điều hành nhúng - 25 -

Chương 3 HỆ THỐNG NHÚNG TRÊN LINUX - 28 -

1 Hệ Điều hành nhúng Linux là gì? - 28 -

1.1 Hệ điều hành Embedded Linux - 28 -

Trang 5

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

1.2 Hệ điều hành FreeRTOS - 29 -

1.3 Hệ điều hành Nucleus RTOS - 29 -

1.4 Hệ điều hành RTEMS - 30 -

2 Sự hỗ trợ về phần cứng - 31 -

2.1 Cấu trúc bộ xử lý - 31 -

2.1.1 x86 - 31 -

2.1.2 ARM - 31 -

2.1.3 IBM/Motorola PowerPC - 32 -

2.1.4 MIPS - 32 -

2.1.5 Hitachi SuperH - 33 -

2.1.6 Motorola 68000 - 33 -

2.2 Các bus và interface - 34 -

2.2.1 ISA - 34 -

2.2.2 PCI - 35 -

2.2.3 PCMCIA - 35 -

2.2.4 PC/104 - 36 -

2.2.5 VME - 36 -

2.2.6 CompactPCI - 37 -

2.2.7 Parallel Port - 37 -

2.2.8 SCSI - 37 -

2.2.9 USB - 38 -

2.2.10 IEEE1394 - 38 -

2.2.11 GPIB - 38 -

2.2.12 I 2 C - 39 -

2.3 I/O - 39 -

2.3.1 Cổng tuần tự - 39 -

2.3.2 Cổng song song - 40 -

2.3.3 Modem - 40 -

2.3.4 DAQ - 40 -

2.3.5 Điều khiển các tiến trình - 41 -

2.3.6 Bàn phím - 41 -

2.3.7 Chuột - 41 -

2.3.8 Hiển thị - 41 -

2.3.9 Âm thanh - 42 -

Trang 6

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

2.3.10 Máy in - 42 -

2.4 Mạng đa năng - 42 -

2.4.1 Ethernet - 42 -

2.4.2 IEEE 802.11 - 43 -

2.4.3 Bluetooth - 43 -

2.5 Mạng công nghiệp - 44 -

2.5.1 CAN - 44 -

2.5.2 ARCnet - 44 -

2.5.3 Modbus - 44 -

Chương 4 TỔNG QUAN LẬP TRÌNH NHÚNG TRÊN LINUX - 46 -

1 Lập trình trên Linux - 46 -

1.1 Xử lý tập tin - 46 -

1.1.1 Các cách xử lý tập tin trong linux - 46 -

1.1.2 Thư viện xuất nhập chuẩn - 46 -

1.1.3 Hàm truy nhập cấp thấp - 47 -

1.2 Tiến trình - 49 -

1.2.1 Khái niệm tiến trình - 49 -

1.2.2 Các trạng thái của tiến trình - 49 -

1.2.3 Tạo lập tiến trình - 49 -

1.3 Tín hiệu - 49 -

1.3.1 Khái niệm tín hiệu - 49 -

1.3.2 Các hàm xử lý tín hiệu - 50 -

1.4 Tiểu trình - 51 -

1.4.1 Khái niệm thread - 51 -

1.5 Semaphores, Hàng đợi thông điệp, Bộ nhớ dùng chung - 52 -

1.5.1 Giới thiệu về System V IPC - 52 -

1.5.2 Semaphores - 52 -

1.5.3 Bộ nhớ dùng chung - 54 -

1.5.4 Hàng đợi thông điệp - 55 -

2 Lập trình nhúng trên Linux - 56 -

2.1 Khái niệm cơ bản - 56 -

2.1.1 Các kiểu host: - 56 -

2.1.2 Các kiểu host/target phát triển - 57 -

2.1.3 Các kiểu host/target gỡ lỗi - 59 -

Trang 7

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

2.1.4 Các kiểu cấu hình khởi động - 60 -

2.2 Tìm hiểu kernel - 63 -

2.2.1 Chọn kernel - 63 -

2.2.2 Cấu hình kernel - 63 -

2.3 Nội dung hệ thống tập tin gốc - 70 -

2.4 Cài đặt hệ thống tập tin gốc - 73 -

Chương 5 GIỚI THIỆU VỀ THIẾT BỊ LDS2000 - 75 -

Chương 6 CÀI ĐẶT CHƯƠNG TRÌNH - 77 -

1 Các bước cài đặt trên máy host - 77 -

2 Cấu hình, tạo ảnh kernel và ramdisk - 78 -

2.1 Cấu hình kernel boot bằng ram - 78 -

2.2 Cấu hình kernel boot bằng NFS - 80 -

3 Thiết lập Minicom - 81 -

4 Cài đặt TFTP server trên host - 83 -

5 Cài đặt NFS server trên host - 84 -

Chương 7 ỨNG DỤNG - 85 -

1 Giới thiệu ứng dụng minh họa - 85 -

2 Cách thực hiện - 86 -

2.1 Xử lý thiết bị thông qua thanh ghi - 86 -

2.1.1 Giới thiệu địa chỉ và chức năng của thanh ghi - 86 -

2.1.2 Sử dụng thanh ghi - 86 -

2.2 Phân tích ứng dụng - 87 -

3 Các bước đóng gói chương trình ứng dụng - 91 -

Chương 8 HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN - 93 -

1 Hạn chế và kết quả đạt được - 93 -

2 Hướng phát triển - 93 -

PHỤ LỤC A: - 94 -

PHỤ LỤC B - 96 -

THUẬT NGỮ - 98 -

TÀI LIỆU THAM KHẢO - 99 -

Trang 8

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

DANH MỤC HÌNH

Hình 1.1: Các thiết bị nhúng - 12 -

Hình 1.2: Máy tính Dẫn đường Apollo - 13 -

Hình 1.3: Mô hình cơ bản của một hệ thống nhúng - 14 -

Hình 1.4: Tập tin tiêu đề ánh xạ bộ nhớ - 18 -

Hình 1.5: Tập tin tiêu đề ánh xạ nhập xuất - 18 -

Hình 1.6: Kiểm soát vòng lặp (polling) - 19 -

Hình 1.7: Bảng ánh xạ tín hiệu ngắt - 20 -

Hình 1.8: Tập tin tiêu đề ánh xạ tín hiệu ngắt trên bo mạch Arcom - 20 -

Hình 1.9: Hệ thống phân loại các thiết bị bộ nhớ - 21 -

Hình 1.10: Trạng thái của tác vụ - 26 -

Hình 1.11: danh sách các tác vụ sẵn sàng - 27 -

Hình 2.1: Bộ vi xử lý i386 và ZFx86™ 486 - 31 -

Hình 2.2: Bộ vi xử lý ARM - 32 -

Hình 2.3: Bộ Tivo (mặt trước và sau) - 32 -

Hình 2.4: Bộ vi xử lý MIPS R4400 - 33 -

Hình 2.5: Bộ vi xử lý SH-2 - 33 -

Hình 2.6: Bộ vi xử lý M68k - 34 -

Hình 2.7: Mô hình bus ISA - 35 -

Hình 2.8: Mô hình bus PCI - 35 -

Hình 2.9: Mô hình bus PCMCIA - 36 -

Hình 2.10: PCI-104 - 36 -

Hình 2.11: Interface SCSI - 37 -

Hình 2.12: Kết nối bằng usb - 38 -

Hình 2.13: Firewire - 38 -

Hình 2.14: GPIB - 39 -

Hình 2.15: Cổng tuần tự - 40 -

Hình 2.16: Cổng song song - 40 -

Hình 3.1: Mô hình xử lý của hệ thống - 46 -

Hình 3.2: Hệ thống các đối tượng IPC - 52 -

Hình 3.3 : semaphore - 53 -

Trang 9

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

Hình 3.4: Chia sẻ bộ nhớ dùng chung - 54 -

Hình 3.5 Hàng đợi thông điệp - 55 -

Hình 3.6: Cài đặt kết nối host/target - 57 -

Hình 3.7: Cài đặt lưu trữ trung gian - 58 -

Hình 3.8: cài đặt độc lập - 59 -

Hình 3.10: Thành phần thiết bị lưu trữ trạng thái khởi động - 61 -

Hình 5.1: Menu cấu hình kernel - 79 -

Hình 5.2: Menu cấu hình kernel - 80 -

Hình 5.3: Menu cài đặt minicom - 81 -

Hình 5.4: Giao diện minicom - 82 -

Hình 5.4: Giao diện boot thiết bị lDS2000 - 82 -

Hình ứng dụng 1: Keypad - 87 -

Hình ứng dụng 2 : Segment - 87 -

Hình ứng dụng 3 : Keypad_segment - 88 -

Trang 10

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

Chương 1 GIỚI THIỆU ĐỀ TÀI

Sau sự phát triển của máy tính lớn và mini (mainframe và mini computer) giai đoạn 1960-1980, PC-Internet giai đọan 1980-2000, thì hiện nay chúng ta đang ở thời đại hậu PC Giai đoạn hậu PC-Internet này được dự đoán

từ năm 2000 đến 2020 là giai đoạn của môi trường thông minh mà hệ thống nhúng là cốt lõi và đang làm nên làn sóng đổi mới thứ 3 trong sự phát triển của Công nghệ thông tin

Sức đẩy của công nghệ đưa công nghệ vi điện tử, các công nghệ vi cơ điện, công nghệ sinh học hội tụ tạo nên các chip của công nghệ nano, là nền tảng cho những thay đổi cơ bản trong công nghệ thông tin và truyền thông Sức kéo của thị trường đòi hỏi các thiết bị phải có nhiều chức năng thân thiện với người dùng, có mức độ thông minh ngày càng cải thiện đưa đến vai trò và tầm quan trọng của các hệ thống nhúng ngày càng cao trong nền kinh tế quốc dân

Phát triển các hệ thống nhúng và phần mềm nhúng là quốc sách của nhiều quốc gia trên thế giới, nhất là vào giai đoạn hậu PC hiện nay Chính phủ, các ngành công nghiệp, các viện nghiên cứu, trường đại học của Việt Nam đang thay đổi chiến lược phát triển công nghệ thông tin và truyền thông của mình để có thể theo kịp, rút ngắn khoảng cách tụt hậu trong lĩnh vực công nghệ thông tin và truyền thông đối với các nước trong khu vực và trên thế giới trong quá trình hội nhập nền kinh tế toàn cầu hiện nay

Với sự phát triển của hệ thống nhúng như đã thấy, chúng em đã quyết định chọn đề tài luận văn của mình là “Tìm hiểu về lập trình nhúng trên linux: Viết ứng dụng minh hoạ trên LDS2000”

1 Mục tiêu của đề tài

- Do thời gian thực hiện đề tài có hạn chúng em sẽ tập trung chủ yếu vào:

Trang 11

CHƯƠNG 1 GIỚI THIỆU ĐỂ TÀI

o Nghiên cứu các khái niệm lý thuyết cơ bản về hệ thống nhúng và lập trình

o Viết ứng dụng minh họa trên thiết bị LDS2000

2 Phương hướng giải quyết

- Với đề tài trên mục tiêu của luận văn chúng tôi là:

o Tìm hiểu khái niệm về hệ thống nhúng

o Tìm hiểu khái niệm về lập trình nhúng trên Linux

o Tìm hiểu về thiết bị LDS2000

3 Bố cục của luận văn

- Luận văn được chia làm 09 chương trong đó:

o Chương 1: Giới thiệu tổng quan về đề tài

o Chương 2, 3, 4, 5: Tìm hiểu cơ sở lý thuyết

o Chương 6: Giới thiệu về thiết bị LDS2000

o Chương 7: Viết ứng dụng minh họa

o Chương 8: Hạn chế và hướng phát triển của đề tài

o Chương 9: Phụ lục

Trang 12

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

Chương 2 TỔNG QUAN HỆ THỐNG NHÚNG

1 Hệ thống nhúng

1.1 Khái niệm hệ thống nhúng

- Theo định nghĩa của IEEE thì hệ thống nhúng là một hệ tính toán nằm trong sản phẩm, tạo thành một phần của hệ thống lớn hơn và thực hiện mộ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ó thể là PC, vi xử lý, vi hệ thống, DSP vv…) đượ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 Ví dụ quanh ta có rất nhiều sản phẩm nhúng như

lò vi sóng, nồi cơm điện, điều hoà, điện thoại di động, ô tô, máy bay, tàu thuỷ, vv Ta có thể thấy hiện nay hệ thống nhúng có mặt ở mọi lúc mọi nơi trong cuộc sống của chúng ta

Hình 1.1: Các thiết bị nhúng

Trang 13

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

1.2 Lịch sử phát triển

- Hệ thống nhúng đầu tiên là máy tính dẫn đường Apollo (Apollo Guidance Computer) được phát triển bởi Charles Stark Draper tại phòng thí nghiệm của trường đại học MIT

- Vào những năm 1961, các thiết bị nhúng như: bóng bán dẫn và đĩa cứng để duy trì bộ nhớ được sản xuất để đưa vào máy hướng dẫn tên lửa quân sự Autonestics D-17

- Vào những năm cuối 1970, các bộ xử lý 8 bit đã được sản xuất, nhưng nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài

- Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến nhiều thành phần có thể đưa vào một chip xử lý Các bộ vi xử lý gọi là các vi điều khiển và được chấp nhận rộng rãi

Hình 1.2: Máy tính Dẫn đường Apollo

2 Đặc điểm của hệ thống nhúng

- Hệ thống nhúng là sự kết hợp phần cứng và phần mềm một cách tối ưu Một số đặc trưng cơ bản của hệ thống nhúng: Chuyên dụng, bị ràng buộc về hoạt động trong chế độ thời gian thực, hạn chế về bộ nhớ, năng lượng và giá thành Hệ thống này phải hoạt động tin cậy và tiêu tốn ít năng lượng

- Hệ thống nhúng rất đa dạng và có nhiều kích cỡ, khả năng tính toán khác nhau

Ví dụ đối với một bộ điều khiển từ xa chỉ cần tới độ tính toán 100 KIPS và bộ nhớ vài KB, đối với thiết bị điều khiển cần tốc độ 1MIPS, 1MB bộ nhớ và đối với các hệ thống nhúng quân sự tốc độ xử lý có thể lên đến 1GIPS, tốc độ truyền 1GB/sec và 32 MB bộ nhớ

Trang 14

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

- Ngoài ra các hệ thống nhúng thường phải hoạt động trong môi trường khắc nghiệt có độ nóng ẩm, rung xóc cao Ví dụ các hệ điều khiển các máy diesel cho tàu biển, các thiết bị cảnh báo cháy nổ trong hầm lò

- Hệ thống nhúng lớn thường là các hệ thống nối mạng Ở máy bay, tàu vũ trụ thường có nhiều mạng nhúng kết nối để kiểm soát hoạt động và điều khiển Trong ô tô hiện đại có đến trên 80 nút mạng kết nối các đầu đo cơ cấu chấp hành

để bảo đảm ô tô hoạt động an toàn và thoải mái cho người sử dụng

Hình 1.3: Mô hình cơ bản của một hệ thống nhúng

N S O S

MEMORY

A C U T O R S

HARDWIRED UNIT Application-specific logic Timers

A/D and D/A conversion

EMBEDDED SYSTEM

USER I/O

Trang 15

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

Công cụ lập trình: các công cụ này thường hỗ trợ một số ngôn ngữ nhất định, công cụ này giúp cho việc lập trình dễ dàng hờn, đa số các công cụ này thường kèm trình biên dịch

Tên công cụ Ngôn ngữ hố trợ Elipse C, C++, Java Kdevelop C, C++, Java Glimmer Ada, bash, C, C++, Java, make,

Perl, Python, x86 assembly

Trình biên dịch (gcc) và trình biên dịch hợp ngữ (as): Đây là những công cụ chuyển đổi giữ ngôn ngữ con người đọc được và ngôn ngữ máy Cả hai công cụ này là bước đầu tiên xây dựng một chương trình nhúng Thường trong ngôn ngữ C/C++ chúng ta đều sử dụng trình biên dịch là gcc trong linux và Borland C trong Windows Chức năng chung của các trình biên dịch là tạo ra một tập tin thực thi trên thệ thống nhúng được gọi là một tập tin đối tượng Đây là tập tin nhị phân được định dạng đặt biệt Nội dung của tập tin đối tượng có thể là một cấu trúc dữ liệu phức tập Cấu trúc này được định nghĩa theo một chuẩn định dạng gọi là: định dạng tập tin đối tượng phổ biến (Common Object File Format - COFF) hoặc định dạng liên kết mở rộng (Extended Linker Format - ELF) Trong đó gcc đều hỗ trợ cả hai chuẩn này

Công cụ phát triển: thường các công cụ này được tích hợp trong thiết bị nhúng, công cụ này phải phù hợp với trình biên dịch mới có thể thực thi trình ứng dụng

3 Lý thuyết cơ bản trên hệ thống nhúng

3.1 Phần cứng

Có 2 kiểu thiết bị phần cứng cơ bản là thiết bị bộ nhớ và thiết bị ngoại vi

- Thiết bị bộ nhớ: Là nơi lưu trữ, phục hồi dữ liệu và đoạn mã

- Thiết bị ngoại vi: Là sự tương tác qua lại giữa các thiết bị nhâp xuất hay thực hiện chức năng đặc biệt

Trang 16

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

o Ví dụ: 2 kiểu thiết bị ngoại vi thường thấy trong hệ thống nhúng như là:

ƒ Cổng tuần tự (serial port ) là thiết bị thuộc dạng I/O

ƒ Bộ đếm thời gian (timer) để thực hiện chức năng đếm

- Bộ xử lý có thể giao tiếp với:

o Thiết bị ngoại vi trong không gian địa chỉ nhập xuất (I/O space)

o Bộ nhớ trong không gian địa chỉ bộ nhớ (Memory space)

- Đôi khi bộ xử lý có thể giao tiếp với các thiết bị ngoại vi trong không gian nhập xuất, khi đó ta gọi các thiết bị ngoại vi đã được ánh xạ vào bộ nhớ và

các thiết bị này hoạt động như một thiết bị bộ nhớ

o Thường thấy trong máy tính cá nhân và máy trạm đầu cuối

o Các bộ vi xử lý thường gặp như: 68000 của Motorola, máy tính của Macintosh Đặc biệt là dòng 80x86 của Intel

o Các vi mạch điều khiển thường thấy là: 8051, 386EX của Intel, một số môi trường giả lập và dòng sản phẩm 68Hxx của Motorola

- Bộ xử lý tín hiệu số (Digital signal processors - DSP)

o Là một bộ vi xử lý được thiết kết để thực hiện tính tóan, xử lý các tín hiệu thời gian riêng biệt như trong: âm thanh hay video

o DSP được thiết kế cho các modem, các thiết bị viễn thông và trong các thiết bị đa phương tiện

Trang 17

- Danh sách này có thể gồm có một số thiết bị:

- Nên sử dụng các module phần mềm hay còn gọi là trình điều khiển thiết

bị cho mỗi thiết bị ngoại vi để giảm bớt kích thước chương trình của phần mềm nhúng

- Nên tạo một bảng ghi nhận tên và giới hạn địa chỉ cho mỗi thiết bị bộ nhớ

và thiết bị ngoại vi đặt trong không gian bộ nhớ

- Bảng này được sắp xếp sao cho địa chỉ thấp đặt dưới và địa chỉ cao ở trên Khi thêm một thiết bị mới chỉ cần xác định vị trí trên bộ nhớ, địa chỉ bắt đầu, địa chỉ kết thúc tính theo giá trị hệ thập lục phân

- Chúng ta cũng nên tạo một tập tin tiêu đề để có thể ánh xạ tên thiết bị thay vì truy xuất bằng địa chỉ

Ví dụ:

Trang 18

- Nên tạo một tập tin tiêu đề để có thể ánh xạ các thiết bị ngoại vi thông qua tên gọi thay vì truy xuất qua địa chỉ

Ví dụ:

Hình 1.5: Tập tin tiêu đề ánh xạ nhập xuất

3.1.5 Giao tiếp của phần cứng

- Có 2 kỹ thuật giao tiếp phần cứng cơ bản là:

o Kiểm soát vòng (polling):

ƒ Bộ xử lý sẽ lặp đi lặp lại quá trình kiểm tra cho đến khi tác vụ kết thúc

ƒ Để thực hiện cách giao tiếp kiểm soát vòng chúng ta chỉ cần tạo một vòng lặp đọc trạng thái thanh ghi và thiết bị sử dụng như sau:

Trang 19

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

Hình 1.6: Kiểm soát vòng lặp

o Tín hiệu ngắt (interrupt): Là sự đồng bộ tín hiệu điện từ thiết bị ngoại

vi vào bộ xử lý Khi tín hiệu ngắt được sử dụng thì bộ xử lý sẽ đưa ra chỉ thị đối với thiết bị ngoại vi và chờ tín hiệu hoàn tất của chỉ thị Trong quá trình chờ đợi bộ xử lý có thể thực thi các công việc khác

- Các kỹ thuật giao tiếp này sẽ xem lệnh cần xử lý là từ không gian bộ nhớ hay không gian nhập xuất

- Tín hiệu ngắt sử dụng hiệu quả hơn kiểm soát vòng vì bộ xử lý có thể thực hiện công việc khác trong quá trình chờ đợi

3.1.6 Ánh xạ tín hiệu ngắt

- Hầu hết các thiết bị nhúng chỉ sử dụng tín hiệu ngắt, mỗi thiết bị đi kèm với một pin tín hiệu ngắt và ISR (intermediate session routing – truyền giao tiếp trung gian)

- Để bộ xử lý có thể thực thi ISR chính xác thì cần phải tồn tại ánh xạ giữa pin tín hiệu ngắt với ISR Ánh xạ này được tạo như một bảng vector tín hiệu ngắt

- Bảng vector là một bảng các con trỏ trỏ đến các hàm được đặt tại một vị trí xác định của bộ nhớ

Trang 20

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

Hình 1.7: Bảng ánh xạ tín hiệu ngắt

- Bộ nhớ sử dụng tín hiệu ngắt như một chỉ mục tới bảng này (mỗi một pin tín hiệu ngắt có một số duy nhất) Giá trị của bảng vector thường là địa chỉ ISR đã được thực thi

- Ánh xạ tín hiệu ngắt là một bảng chứa danh sách các kiểu tín hiệu ngắt và các thiết bị có tín hiệu ngắt đó Và chúng ta có thể tạo ánh xạ tín hiệu ngắt thành một tập tin tiêu đề dạng như sau:

Hình 1.8: Tập tin tiêu đề ánh xạ tín hiệu ngắt bo mạch Arcom

3.2 Bộ nhớ

3.2.1 Các kiểu bộ nhớ

Trang 21

sẽ được lưu trữ ngay cả khi không có nguồn điện giống như ROM

- Hình dưới đây sẽ cung cấp cho chúng ta hệ thống phân loại các thiết bị bộ nhớ thường được tìm thấy trong hệ thống nhúng

Hình 1.9: Hệ thống phân loại các thiết bị bộ nhớ

a RAM

- Có 2 kiểu thiết bị RAM là: SRAM và DDRAM

- Điểm khác nhau chính giữa 2 thiết bị này là thời gian tồn tại của dữ liệu được lưu trữ:

o SRAM (static RAM): Lưu trữ dữ liệu trong suốt quá trình có nguồn

điện trên chip Khi nguồn điện đó bị ngắt hoặc bị mất dữ liệu tạm thì những dữ liệu tạm đó sẽ bị mất mãi mãi

o DRAM (dynamic RAM): Lại ngược lại, thời gian lưu trữ dữ liệu vô

cùng ngắn chỉ khoảng ¼ giây thậm chí dù là nguồn điện vẫn còn

- Trình điều khiển DRAM được sử dụng để DRAM hoạt động giống với SDRAM

o Trình điều khiển DRAM dùng để làm mới lại dữ liệu đã được lưu trữ trong DRAM một cách định kì

Trang 22

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

o Bằng cách làm tươi dữ liệu vài lần trong một giây thì trình điều khiển DRAM tiếp tục lưu trữ nội dung trong bộ nhớ tồn tại suốt quá trình chúng ta sử dụng,

- Khi đó DRAM cũng trở nên hiệu quả như SDRAM

b ROM

- Bộ nhớ trong dòng ROM được phân biệt bởi các phương thức sử dùng

để ghi dữ liệu mới vào ROM và số lần có thể thực hiện lại quá trình ghi

- Đặc điểm tiêu biểu của ROM đó là lưu trữ dữ liệu và chương trình mãi mãi thậm chí là cả khi không có điện

- Sự phân loại của ROM cũng phản ánh quá trình phát triển của các thiết bị này như sau:

o Masked ROM là thiết bị đầu tiên của ROM, một thiết bị gắn liền (hardwired)

ƒ Được gắn liền trong các dữ liệu hay chỉ thị đã mã hoá Có chi phí sản phẩm thấp

ƒ Nội dung của ROM được chỉ định trước khi sản xuất chip, vì vậy trong thực tế dữ liệu được sắp đặt sử dụng để kiểm tra tín hiệu trong chip

o PROM là bước phát triển tiếp theo, một thiết bị có chương trình được ghi một lần (one time programable – OTP)

ƒ Trạng thái của các chương trình chưa được lập trình

ƒ Quá trình ghi dữ liệu lên PROM do người lập trình thực hiện ghi dữ liệu lên thiết bị tại thời điểm đầu tiên, bằng cách thay đổi tín hiệu điện của các pin nhập trên chip

ƒ Nội dung của PROM không bao giờ thay đổi được, nếu đoạn

mã hay dữ liệu trong PROM cần được thay đổi thì thiết bị đó

Trang 23

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

ƒ EPROM có thể xoá và lặp lại quá trình cài đặt

ƒ Để xoá EPROM chỉ cần đặt thiết bị trong tia cực tím, về cơ bản tất cả các chip sẽ ở trạng thái chưa được cài đặt

ƒ Là một phần chủ yếu trong quá trình phát triển phần mềm và quá trình kiểm tra

c Dạng lai ( Hybrid )

- Thiết bị Hybrid gồm:

o EEPROM và Flash kế thừa các đặc tính của thiết bị ROM

o NVRAM (phiên bản sau SRAM) kế thừa các đặc tính của thiết bị

ƒ Thực hiện thao tác xóa từng khối được gọi là sector sau đó ghi

đè dữ liệu lên Kích thước sector được giới hạn từ 256 byte đến 16 kilobyte

ƒ Thiết bị này có dung lượng lớn có thể thay thế ổ đĩa, chi phí thấp, đọc nhanh

o NVRAM (nonvolatile RAM) :

ƒ Là một SRAM nhưng có khả năng lưu trữ nguồn điện

ƒ Khi nguồn điện bật, NVRAM thao tác như SRAM Nhưng khi nguồn điện tắt thì NVRAM sẽ lưu trữ một lượng điện vừa đủ từ nguồn điện dự trữ sẵn để giữ nội dung hiện nay

Trang 24

3.3.1 Thanh ghi điều khiển và thanh ghi trạng thái

- Giao diện cơ bản để giao tiếp giữa bộ vi xử lý và các thiết bị ngoại vi là tập các thanh ghi điều khiển và thanh ghi trạng thái Những thanh ghi này

là một phần của thiết bị ngoại vi, nó có vùng nhớ, kích thước riêng để phân biệt với các thanh ghi khác

- Phụ thuộc vào sự thiết kế của bộ vi xử lý mà thiết bị ngoại vi được ánh xạ vào bộ nhớ hoặc ánh xạ vào thiết bị nhập xuất của hệ thống

- Thanh ghi điều khiển và thanh ghi trạng thái thuộc loại ánh xạ bộ nhớ, để điều khiển chúng ta khai báo một biến kiểu con trỏ trỏ đến địa chỉ của thanh ghi

- Tuy nhiên, biến điều khiển và thanh ghi khác nhau hoàn toàn Với thanh ghi thì nội dung được đinh nghĩa sẵn theo thiết bị ngoại vi Ngược lại đối với biến thì chúng ta có thể thay đổi nội dung của nó cho phù hợp với chương trình

3.3.2 Trình điều khiển thiết bị

- Trình điều khiển thiết bị giấu đi sự phức tạp của phần cứng thay vào đó là một giao diện rất dễ sử dụng Trình điều khiển thiết bị là một phần mềm

có thể truy cập trực tiếp vào hệ thống bằng cách đọc hoặc ghi trực tiếp vào các thanh ghi của thiết bị

- Trình điều khiển thiết bị của hệ thống nhúng thì khác với máy tính PC, trình điều khiển thiết bị trong các máy tính phải thỏa mãn những yêu cầu của hệ điều hành, vì vậy giao tiếp với phần cứng phức tạp hơn Ngược lại, phần mềm ứng dụng của hệ thống nhúng có thể dễ dàng truy cập vào phần cứng, bởi vì tất cả các phần mềm này được liên kết vào trong một ảnh nhị phân đơn

Trang 25

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

3.4 Hệ điều hành

3.4.1 Đặc điểm của hê điều hành

- Cung cấp giao diện dễ sử dụng Có tính đa nhiệm: thực thi nhiều tác vụ đồng thời trên một bộ xử lý Trong đó mỗi tác vụ chạy độc lập với nhau

- Nhân hệ điều hành khá phức tạp, tuy nhiên so với sự phức tạp của hệ điều hành trên máy thông thường thì hệ điều hành nhúng đơn giản hơn rất nhiều Những hàm của hệ điều hành nhúng thường nhỏ hơn và được định nghĩa dễ dàng hơn, một khi biết được cách tạo hàm và phương thức thực hiện bạn sẽ thấy rằng hệ điều hành nhúng không khó tạo ra hơn là một phần mềm nhúng

- Hệ điều hành nhúng thường nhỏ và ít khi có ổ đĩa cũng như sự hỗ trợ của

đồ họa, bên cạnh đó chúng ta chỉ cần một số tập tin hệ thống và một giao diện người dùng giúp giao tiếp với phần cứng

- Trong hệ điều hành nhúng thường chỉ sử dụng một “user” vì vậy việc bảo mật cũng không cần thiết

3.4.2 Yêu cầu của hệ điều hành nhúng

- Yêu cầu của một hê điều hành nhúng (ADEOS ):

Trạng thái tác vụ

Trang 26

CHƯƠNG 2 TỔNG QUAN HỆ THỐNG NHÚNG

- Trong một khoảng thời gian nhất định thì chỉ có một tác vụ chiếm giữ

bộ xử lý Vì vậy các tác vụ còn lại phải chờ và sẵn sàng thực thi Dựa vào các giai đoạn trên thì tác vụ được chia làm ba trạng thái đó là:

- Các điểm bộ tập lệnh là tập hợp các sự kiện của hệ điều hành, Chúng

ta có thể thấy 2 sự kiện của hệ điều hành đó là: tạo tác vụ và xóa tác

vụ Nếu tác vụ hiện thời vẫn có độ ưu tiên cao nhất thì nó vẫn tiếp tục thực thi

∗ Danh sách các đối tượng thực thi (Ready list)

- Bộ tập lệnh sử dụng cấu trúc dữ liệu để theo dõi trạng thái ready của tác vụ, cấu trúc này gọi là danh sách các tác vụ sẵn sàng (ready list).Trong ADEOS, danh sách các tác vụ này được thao tác như danh sách liên kết (theo thứ tự và theo độ ưu tiên) Các tác vụ đầu danh

Trang 27

- Nếu không có tác vụ ở trạng thái ready khi bộ tập lệnh được gọi, tác

vụ idle sẽ được thực thi Tác vụ Idle đơn giản chỉ là một vòng lặp rỗng Tuy vậy nó vẫn có ID và độ ưu tiên riêng (ID = 0, độu ưu tiên = 0) Tác vụ Idle luôn ở trạng thái sẵn sàng, bởi vì có độ ưu tiên thấp nhất nên tác vụ idle luôn nằm ở cuối danh sách readyList

Trang 28

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

Chương 3

HỆ THỐNG NHÚNG TRÊN LINUX

Khác với PC thường chạy trên nền hệ điều hành Windows hoặc UNIX, các hệ thống nhúng có các hệ điều hành nhúng riêng của mình Các hệ điều hành dùng trong các hệ thống nhúng nổi trội hiện nay bao gồm: Embedded Linux, VxWorks, Win CE, Lynyos, BSD, Green Hills, QNX và DOS Đa số các hệ điều hành nhúng thường bao gồm hệ thống thời gian thực (được gọi là

hệ điều hành thời gian thực - real-time operating system)

1 Hệ Điều hành nhúng Linux là gì?

- Là hệ điều hành được tạo ra trên môi trường linux, có khả năng đáp ứng các sự kiện được xác định và đồng bộ hóa các tác vụ theo một thuật toán nhất định Thuật toán này sẽ quyết định tiến trình nào sẽ chạy trước và sau, dựa vào độ ưu tiên của tác vụ

- Một hệ điều hành nhúng Linux bao gồm: Một nhân cho hệ điều hành và các ứng dụng

- Trong đó nhân lại bao gồm các công cụ phát triển, các công cụ này sẽ làm cho việc phát triển hệ điều hành dễ dàng hơn Công cụ bao gồm có các phần mềm: source-browsers, cross-compilers, debuggers, project management, boot image builders Chúng được sử dụng trên máy host

linux, máy này sẽ tạo ra các tập tin ứng dụng bao gồm: các thư viện đặc

biệt, tập tin exe và các tập tin cấu hình, tất cả chúng sẽ được đưa vào đối tượng nhúng

1.1 Hệ điều hành Embedded Linux

− Embedded Linux hiện đang phát triển mạnh và chiếm vị trí số một Hiện

nay 40% các nhà thiết kế các hệ nhúng cân nhắc đầu tiên sử dụng Embedded Linux cho các ứng dụng mới của mình và sau đó mới đến các hệ điều hành nhúng truyền thống như VxWorks, Win CE

Trang 29

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

o Sở dĩ Embedded Linux có sự phát triển vượt bậc là do có sức hấp dẫn đối với các ứng dụng không đòi hỏi thời gian thực như set-top, các hệ server nhúng, các ứng dụng giá thành thấp và đòi hỏi thời gian đưa sản phẩm ra thị trường nhanh

o Mặt khác Linux là phần mềm mã nguồn mở nên bất kỳ ai cũng có thể hiểu và thay đổi theo ý mình Linux cũng là một hệ điều hành có cấu trúc module và chiếm ít bộ nhớ trong khi Windows không có các đặc tính ưu việt này

1.2 Hệ điều hành FreeRTOS

- FreeRTOS là hệ điều hành thời gian thực cho các thiết bị nhúng, nó được

phân phối bởi GPL và sử dụng như một chương trình có mã nguồn mở, vì vậy nó dễ dàng sử dụng cho các chương trình ứng dụng có tính thương mại FreeRTOS được sử dụng miễn phí và không phải yêu cầu thông tin của người sử dụng

- Các thiết bị mà FreeRTOS hỗ trợ: MSP430, HSC12, MicroBlaze, x86, 8052 PIC18, PIC24, dsPIC, AVR, ARM7…

- Chúng ta có thể đọc và sữa đổi mã nguồn một cách dễ dàng, vì hầu hết các câu lệnh đều viết bằng ngôn ngữ C, một số ít được viết bằng ngôn ngữ asembler

- Phiên bản 4 trở đi FreeRTOS cho phép các ứng dụng sử dụng coroutines¸ cũng giống như tác vụ (task), thay vào đó coroutines lại sử dụng rất ít bộ

nhớ

- Phiên bản đầu tiên của FreeRTOS được sản xuất bởi CORTEX-M3 sử dụng trên các bộ vi xử lý đơn giản

1.3 Hệ điều hành Nucleus RTOS

- Nucleus RTOS cũng là một hệ điều hành thời gian thực (RTOS) và có đầy

đủ những đặc điểm của một thống nhúng, khả năng thích ứng với nhiều CPU khác nhau Hệ Điều hành đươc phát triển trên cả hai hê điều hành là Windows hoặc LINUX Và nó có thể thích ứng với nhiều thiết bị như: thiết

Trang 30

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

bị quản lý khách hàng, điện thoại, và một số thiết bị di động khác Giới hạn

hệ thống bộ nhớ của Nucleus RTOS là 13 KB cho cả mã và dữ liệu

Các thành phần

o Nhân: nhân thời gian thực (Real time kernel), giao diện C++ and POSIX, kết nối với bộ xử lý (interprocessor communications)

o Kết nối qua USB 2.0, drivers

o Nối mạng: Hệ điều hành bao gồm giao thức TCP/IP, IPv6 và wireless

o Hệ thống file : FAT, ISO 9660 CD-ROM, Hệ thống file ảo API

o Đồ họa: tương đối nhưng lại có đủ các hệ thống tập tin

o Bảo mật: sử dụng các loại bảo mât như: mã hóa mật khẩu, giao thức thay đổi bàn phiếm…

1.4 Hệ điều hành RTEMS

- RTEMS (Real-Time Executive for Multiprocessor Systems) Là một hệ điều

hành thời gian thực có mã nguồn mở được thiết kế cho hệ thống nhúng

RTEMS hỗ trợ nhiều loại bộ xử lý như: ARM, 68K, MIPS, PowerPC, SuperH, SPARC, i386…

- RTEMS được thiết kế hỗ trợ nhiều chuẩn API khác nhau như: POSIX và uITRON Chuẩn API hiện nay được dựa trên RTEMS là API cổ điển và được phát triển lên thành khái niệm thực thi giao diện thời gian thực (RTEID) Hệ điều hành RTEMS hỗ trợ các giao thức TCP/IP và cả hệ thống tập tin như NFS và FAT

- RTEMS không hỗ trợ nhiều dạng quản lý và xử lý bộ nhớ Trong công nghệ POSIX, chỉ hỗ trợ môi trường xử lý đơn hay đa luồng (thread) Hệ điều hành RTEMS phản ánh gần như đầy đủ các thuộc tính của POSIX, ngoài ra còn hỗ trợ thêm việc ánh xạ bộ nhớ (memory mapping), chỉ định xử lý (tiến trình forking), hoặc chia sẻ vùng nhớ

- RTEMS được sử dụng trong nhiều lĩnh vực ứng dụng khác nhau Hệ điều hành RTEMS cũng khá được ưa chuộng trong môi trường sử dụng từ khi nó

hỗ trợ việc phát triển các bộ vi xử lý Các cấu trúc được hỗ trợ SPARC

ERC32 và LEON, MIPS Mongoose-V, Coldfire, và PowerPC

Trang 31

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- x86 hay 80x86 là tên chung của cấu trúc bộ vi xử lý được phát triển và

sản xuất bởi Intel vào những năm 1985 Tiếp tục phát triển trong các dòng sản phầm 486 hay họ Pentium

- Cho tới ngày nay, dòng x86 vẫn còn được sử dụng và xu hướng hiện nay

là dòng Geode của Semiconductor và ZFx86 của ZF Micro Devices

- Trên nền tảng linux, cấu trúc i386 của dòng x86 được sử dụng rỗng rãi

Hình 2.1: Bộ vi xử lý i386 và ZFx86™ 486

2.1.2 ARM

- ARM (Acorn RISC Machine) là sản phẩm của công ty ARM Holding ltd

Được sử dụng rộng rãi trong các thiết kế nhúng

- Hiện nay linux hỗ trợ khoảng 10 bộ xử lý (CPU) của ARM, 16 platforms khác nhau, và hơn 200 bo mạch CPU ARM được tìm thấy trong nhiều sản phẩm thương mại điện tử như: thiết bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trò chơi cầm tay, và máy tính cầm tay), thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định bus để bàn.)

- Một nhánh nổi tiếng của họ ARM là các vi xử lý XScale của Intel

Trang 32

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

Hình 2.2: Bộ vi xử lý ARM

2.1.3 IBM/Motorola PowerPC

- PowerPC được sản xuất năm 1991 với sự liên kết của 3 công ty Apple–

IBM–Motorola PowerPC được dựa trên nền tảng cơ bản là cấu trúc POWER của IBM và vẫn giữ tính tương thích cao của cấu trúc này PowerPC được sử dụng trong các thiết bị Macs của Apple

- Cũng tương tự ARM và i386, PowerPC phát triển trong hỗ trợ nền tảng linux

Ví dụ: Các hệ thống TiVo là một bộ xử lý đã được nhúng PowerPC

Hình 2.3: Bộ Tivo (mặt trước và sau)

2.1.4 MIPS

- MIPS (Microprocessor without Interlocked Pipeline Stages) là đứa

con tinh thần của John Hennessey được phát triển bởi MIPS Technologies

- MIPS được dùng trong các máy trạm, máy chủ của SGI và các máy chơi game như là: Series2 TiVo, Windows CE devices, Cisco routers giống như: Nintendo 64 và Sony PlayStation, PlayStation 2 và PlayStation Portable Nó cũng được sử dụng trong nhiều hệ thống nhúng khác

- Hệ thống MIPS 32 bit thường được sử dụng trong các sản phầm của IDT, Toshiba, Alchemy và LSL

Trang 33

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- Hệ thống 64 bit thường thấy trong sản phầm của IDT, LSI, NEC, QUED, Toshiba, SandCraft

- Một số phiên bản của MIPS:

o 32 bit: MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS32

- Thực thi 32-bit dữ liệu, mở rộng băng tần của bus

- Các dòng sản phẩm của SuperH, như là SH-1, SH-2, không hỗ trợ MMU Tuy nhiên từ SH-3 thì tất cả bộ xử lý SuperH đã hỗ trợ MMU

- SuperH được sử dụng trong các sản phẩm của Hitachi, trong hệ thống nhúng hướng đối tượng như: PDAs, Sega Saturn…

- SuperH (SH) bộ xử lý không có MMU không hỗ trợ linux Hiện nay

SH-3 và SH-4 được linux hỗ trợ như 7707, 7708, và 7709 của bộ xử lý SH-SH-3

và 7750, 7751, và ST40 của bộ xử lý SH-4

Hình 2.5: Bộ vi xử lý SH-2

2.1.6 Motorola 68000

Trang 34

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- Dòng Motorola 68000 được biết trong Linux như là M68k

- Là một cấu trúc thông dụng trong những năm 1980, một phần là nhờ các công ty lớn như: Atari, Apple, and Amiga, sử dụng trong sản phẩm của

họ và trong hệ thống máy trạm của HP, Sun,và Apollo

- M68k cũng là nền tảng được chọn cho sự phát triển của hệ thống nhúng Cấu trúc này mới hơn ARM, MIPS, SH, và PowerPC trong thiết kế hệ thống nhúng

- Linux hỗ trợ nhiều hệ thống của m68k, xu hướng bắt đầu từ hệ thống máy trạm và hệ thống VME của Motorola và BVM

Hình 2.6: Bộ vi xử lý M68k

2.2 Các bus và interface

Các bus và các interface là một cơ cấu để kết nối CPU với các thiết bị ngoại

vi Mức độ hỗ trợ của Linux cho các bus và interface là khác nhau Dưới đây là một số bus và interface chạy trong hệ thống nhúng linux:

2.2.1 ISA

- Industry Standard Architecture (ISA) thiết kế bus trong máy tính AT (Advanced technology) của hãng IBM, nó sử dụng bus 16 bit cùng với vài khe cắm 8 bit để tương thích ngược với các thiết bị cấp thấp

- Không chỉ là một đường dữ liệu có độ rộng gấp đôi mà đường địa chỉ đã được tăng lên 24 đường đủ để lập địa chỉ cho 16M bộ nhớ

- Hầu hết các thiết bị ISA được truy cập thông qua lập trình cổng nhập xuất

(I/O port) Kernel cũng hỗ trợ thiết bị Extended ISA (EISA) Hệ thống

Trang 35

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

nhúng chỉ dựa trên các bus để hỗ trợ phần cứng thêm vào hay tháo ra trong quá trình thực thi, như là: CompactPCI, PCMCIA, và USB

Hình 2.7: Mô hình bus ISA

2.2.2 PCI

- Peripheral Component Interconnect (PCI) bus, do PCI Special Interest Group (PCI-SIG) quản lý, được thiết kế để thay thế ISA

- Dùng để kết nối các cấu trúc khác nhau như: PPC và MIPS

- Không giống ISA, PCI yêu cầu chương trình để hỗ trợ sử dụng thiết bị được gọi là trình điều khiển thiết bị

Hình 2.8: Mô hình bus PCI

2.2.3 PCMCIA

- Personal Computer Memory Card International Association (PCMCIA),

là tên của một bus thông dụng và cũng là tên của một hiệp hội thương mại quốc tế đã xây dựng các tiêu chuẩn cho các thiết bị như: môdem, các thiết bị ổ cứng gắn ngoài, chỉ hỗ trợ cho thẻ 16-bit , trong khi đó các chuẩn khác có thể hỗ trợ: 32-bit CardBus và USB CardBay

- Linux hỗ trợ PCMCIA trong cấu trúc i386 và một phần của PowerPC (PPC)

Trang 36

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

Hình 2.9: Mô hình bus PCMCIA

- PC/104 và PC/104+ được quản lý bởi PC/104 Consortium

- PC/104 giống hệt ISA và PC/104+ giống cả ISA và PCI

Trang 37

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- SCSI có rất nhiều interface Kiểu thông dụng đầu tiên là parallel SCSI (còn được gọi là SPI) thường được dùng trong thiết kết bus điện song song SPI được dùng để chuyển SCSI kết nối tuần tự thành từng dãy point-to-point nhưng vẫn giữ lại các thành phần khác của kỹ thuật này

- Small Computer Systems Interface (SCSI) chuẩn đã được duy trì và phát triển cùng với các chuẩn khác như: ANSI, ITIC, NCITS, và T10

- SCSI truyền thống thường được thấy trong nhiều sản phẩm máy tính trên môi trường như: Window, Mac, Linux

Hình 2.11: I nterface SCSI

Trang 38

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- FireWire là tên sản phẩm của Apple được thiết kế trong những năm

80-90 Tương tự USB, IEEE1394 kết nối các thiết bị giao tiếp phần cứng IEEE1394 và USB được sử dụng cùng nhau

- Không giống SCSI các kết nối bị giới hạn, chúng ta có thể kết nối 1 hay nhiều máy tính trực tiếp qua IEEE1394

Hình 2.13: Firewire

2.2.11 GPIB

- General-Purpose Interface Bus (GPIB) là bus HP-IB của HP, xuất hiện cuối những năm 1960 GPIB đã trở thành chuẩn IEEE488

Trang 39

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- Thiết bị nhập xuất được kernel hỗ trợ theo 2 cách:

o Thứ 1: Trình điều khiển của các thiết bị kết nối trực tiếp với hệ thống

o Thứ 2: Sử dụng cổng USB để kết nối thiết bị bàn phím PS/2 và kết nối máy in song song hoặc bàn phím USB và máy in USB

Trang 40

CHƯƠNG 3 HỆ THỐNG NHÚNG TRÊN LINUX

- Chúng sử dụng mô hình giao diện của POTS (Plain old telephone system)

để truy cập máy chủ điều khiển từ xa

Ngày đăng: 30/10/2022, 21:36

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w