Giải thích hoạt động

Một phần của tài liệu Luận văn tốt nghiệp đại học thiết kế ROBOT tự hành với hệ điều hành nhúng LINUX (Trang 29 - 90)

Khối nguồn (Power supply):

• Lấy nguồn 12V từ acquy dùng làm nguồn công suất cho L298.

• Nguồn 12V cũng qua cuộn lọc L1, qua IC 7805 tạo nguồn áp 5V cấp cho khối logic của L298, và cấp nguồn cho mạch điều khiển.

• Cầu chì F1 và điot xung FR307 bảo vệ chống cấp ngược áp cho mạch. Khối Motor:

• Các tụ 104pF bù công suất.

• Các điot FR207 để dập dòng tự cảm, bảo vệ mạch. Khối Logic driver:

• Gồm 2 IC L298, cho phép điều khiển 4 động cơ.

• Các ngõ ra Out A1, Out A2, Out B1, Out B2, Out C1, Out C2, Out D1, Out D2 lần lượt là ngõ ra cấp dòng cho 4 động cơ cơ A, B, C, D tương ứng.

• Các ngõ vào In A1, In A2, In B1, In B2, In C1, In C2, In D1, In D2 lần lượt là ngõ vào điều khiển động cơ A, B, C, D.

Hoạt động: 4 động cơ được điều khiển độc lập và hoàn toàn tương tự nhau. Xét động cơ A:

• Để động cơ quay thuận, ta cấp mức logic 0 cho ngõ vào In A2, và cấp xung PWM cho In A1.

• Ngược lại, để động cơ quay nghịch, ta cấp mức logic 0 cho In A1, và cấp xung PWM cho In A2.

Luận án tốt nghiệp Chương 4: Mạch công suất động cơ

Luận án tốt nghiệp Chương 5: Mạch Micro2440 CHƯƠNG 5

Mch Micro2440

5.1 Tng quan v mch Micro2440:

Board Micro2440 là một sản phẩm của một nhóm nghiên cứu về hệ thống nhúng – hệ điều hành nhúng – máy tính nhúng trên kiến trúc vi xử lý lõi ARM, tên nhóm nghiên cứu là FriendlyARM. Website http://www.friendlyarm.net trình bày về các sản phẩm và dự án nghiên cứu của FriendlyARM.

Board FriendlyARM Micro2440 dựa trên nền tảng ARM9, sử dụng microprocessor S3C2440 của Samsung có thể chạy với xung clock tối đa 533 MHz. Board được sản xuất hướng đến người dùng phát triển ứng dụng nhúng, điều khiển thiết bị công nghiệp, phát triển các thiết bị PDA, GPS receiver.

Board FriendlyARM Micro2440 là một máy tính nhúng, xuất xưởng hệ điều hành Linux cài đặt sẵn và có thể làm việc ngay mà không cần bước cấu hình nào.

Với Micro2440, một người dùng với kiến thức lập trình ứng dụng trên máy tính có thể ngay lập tức làm việc và phát triển phần mềm ứng dụng trên board, không đòi hỏi kiến thức về phần cứng và điện tử.

Cho người dùng làm công việc nghiên cứu và phát triển, board Micro2440 có thể được nạp hệ điều hành Linux, Windows CE, Android, và có thể tùy biến về phần mềm hoàn toàn theo yêu cầu công việc cụ thể.

Board Micro2440 “mã nguồn mở” cả về phần cứng và phần mềm. Cho mục đích học tập và nghiên cứu, ta hoàn toàn có thể tham khảo các thiết kế phần cứng, các quy trình nạp (porting) một hệ điều hành lên một mạch nhúng, thực hành lập trình nhúng.

Board Micro2440 bao gồm 2 khối chính: core board và SDK board. Core board chứa CPU, các bộ nhớ, các thiết bị cần thiết tối thiểu để chạy CPU và memory, và các port chân cắm để cắm vào SDK board. SDK board có các module giao tiếp ngoại vi.

Luận án tốt nghiệp Chương 5: Mạch Micro2440 Cấu hình cơ bản của máy tính nhúng Micro2440:

• CPU tốc độ tối đa 533MHz. • 64MB SDRAM.

• 256MB bộ nhớ FLASH.

• LCD 3.5inch hoặc 7inch với resistor touch screen. • Real-time clock với pin backup.

• COM port. • USB host 1.1.

• 1 10/100 Ethernet RJ-45.

• Cổng giao tiếp với Camera Module CAM130 của FriendlyARM. • Audio output 3.5 stereo jack và Microphone.

• PWM buzzer.

• Nút nhấn, Led, GPIO.

5.2 Kiến trúc phn cng mch Micro2440:

5.2.1 Vi x lý S3C2440A:

S3C2440A là vi xử lý 16/32-bit của hãng SAMSUNG, được thiết kế cho các ứng dụng thiết bị cầm tay, smartphone, PDA… với mục tiêu tiết kiệm năng lượng, giá thành thấp, chất lượng cao.

S3C2440A được phát triển với lõi 16/32-bit ARM920T, công nghệ chế tạo CMOS 0.13µm, tập lệnh RISC. Lõi ARM920T tích hợp các khối: MMU, AMBA BUS, kiến trúc Harvard với 16KB instruction và 16KB data cache riêng biệt.

Luận án tốt nghiệp Chương 5: Mạch Micro2440

Hình 5.3 – Các khổi chức năng của S3C2440A

Luận án tốt nghiệp Chương 5: Mạch Micro2440 Và sơ đồ khối:

Hình 5.4 – Sơ đồ khối S3C2440A

5.2.2 Core board:

Core board được thiết kế layout 6 lớp với kích thước 52mm x 63mm. Trên đó chứa CPU (S3C2440A), các IC nhớ (memory), và đưa ra 3port chân cắm sắp xếp dạng chữ U để cắm vào mạch SDK board.

Luận án tốt nghiệp Chương 5: Mạch Micro2440

Hình 5.5 – Core board.

Core board là một mạch với các phần cứng tối thiểu cho một hệ thống máy tính. Nó bao gồm: Vi xử lý S3C2440; mạch cấp nguồn (đầu vào 5V); mạch Reset; cổng Jtag; các Led debug; các bộ nhớ: NAND FLASH, NOR FLASH, SDRAM; các linh kiện như tụ điện, điện trở, thạch anh cần thiết cho vi xử lý và các IC nhớ; 1 Jumper để chọn chế độ khởi động từ NAND FLASH hay NOR FLASH; và 3 port chân cắm PA, PB, PC.

Core board có thể xem như khối System(CPU và memory) cho board Micro2440. Chi tiết phần cứng core board:

• CPU:

•Samsung S3C2440A, tốc độ 400MHz, max 533MHz. • SDRAM:

•Dung lượng 64MB. •Data bus 32bit.

•Bus clock tối đa 100MHz. • Flash memory:

•256MB NAND FLASH. •2M NOR FLASH.

• Các cổng và thiết bị tương tác:

•1port PA 56 chân pitch 2.0mm cho GPIO.

Luận án tốt nghiệp Chương 5: Mạch Micro2440 •1port PC 56 chân pitch 2.0mm cho System bus.

•Mạch Reset on-board.

•Port Jtag 10 chân pitch 2.0mm. •LED.

• Clock hệ thống: •Thạch anh 12MHz. • Real-time clock:

•On-chip Real-time clock, không bao gồm pin back-up. •Thạch anh Real-time 32.768KHz. • Nguồn: •5VDC. • Kích thước: •63 x 52 mm. 5.2.3 SDK board:

SDK (Software Development Kit – bộ phát triển phần mềm) thường được biết đến như một mạch (Kit) trên đó có sẵn một số module chức năng phần cứng, nhằm mục đích dễ dàng cho học tập và nghiên cứu phát triển các phần mềm ứng dụng cho các module phần cứng đó.

Micro2440SDK là một mạch 2 lớp, gồm các module hỗ trợ khối hệ thống (Core board) giao tiếp với các thiết bị ngoại vi. Micro2440 là một máy tính nhúng và vai trò của SDK board gần tương tự Main Board của máy tính.

Luận án tốt nghiệp Chương 5: Mạch Micro2440 Micro2440SDK bao gồm:

• 1 RJ-45 network interface 100M, sử dụng Chip LAN DM9000. • cổng giao tiếp nối tiếp, gồm 3 ngõ ra TTL và 3 ngõ ra RS232. • USB Host (USB 1.1), sử dụng USB HUB Chip.

• 1 USB device (USB 1.1).

• Audio output 3.5mm stereo jack và 1 microphone. • 1 PWM buzzer.

• 1 biến trở W1 cho bộ ADC on-chip. • nút nhấn.

• 1 khe cắm SD card.

• LCD connector: 1 cho LCD 3.5inch và 1 cho LCD 7inch. • touch screen connector.

• 1 CMOS camera connector (CON4) để kết nối với Camera module CAM130 của FriendlyARM.

• Pin backup RTC • 1 port System Bus. • Ngõ vào cấp nguồn 5V.

Với việc tách riêng phần hệ thống (Core board) và phần giao tiếp ngoại vi (SDK), nhà sản xuất đã dự tính để ta có thể thiết kế và thi công lại 1 mạch nhúng sử dụng lại khối Core board nhưng với các ngoại vi và các khối chức năng khác thích hợp hơn với ứng dụng cụ thể của minh.

Core board bao gồm CPU và các memory (Flash, SDRAM) với tần số hoạt động và tần số trên data bus cao, ngoài ra S3C2440 có kiểu vỏ 289-FBGA, 2 lý do này khiến việc thiết kế và thi công khối CPU và memory trở nên phức tạp. Chắc chắn cần công nghệ mạch in nhiều hơn 2 lớp.

SDK chỉ gồm các port IO, các IC giao tiếp… nên việc thiết kế và thi công đơn giản hơn nhiều, hoàn toàn có thể sử dụng mạch in 2 lớp.

Vì vậy, cho 1 ứng dụng cụ thể cần đến khối hệ thống tương tự như Core board của Micro2440, ta hoàn toàn có thể dùng lại Core board và thiết kế lại SDK thích hợp.

5.3 Hđiều hành Embedded Linux trên Micro2440:

5.3.1 H điều hành Embedded Linux:

Một hệ điều hành bao gồm 2 phần chính: phần nhân hay lõi của hệ điều hành (Kernel) và phần hệ thống các tập tin và các ứng dụng (File System).

Embedded Linux là một hệ điều hành hoàn chỉnh. Cụm từ “embedded” thường được đề cập trong kernel nhưng thực chất không có một phiên bản Linux kernel nào dành riêng cho hệ thống nhúng. Linux kernel source code được sử dụng chung để compile cho mọi thiết bị, từ các thiết bị nhúng, đến máy PC và cả các server lớn, đối với mỗi platform sẽ có những option hiệu chỉnh phù hợp và đặc biệt dành cho platform đó.

Luận án tốt nghiệp Chương 5: Mạch Micro2440 Các thành phần cấu tạo nên hệ thống Embedded Linux bao gồm boot loader, Linux kernel, và File System. Tất cả các thành phần này đều có thể tìm thấy phiên bản open source và chúng ta có thể tự mình chỉnh sửa, thay đổi cho phù hợp với thiết bị của mình.

Embedded Linux không thể chạy trên các processor có kiến trúc nhỏ hơn 32-bit. Trong thời gian gần đây, công nghệ system-on-chip (SOC) phát triển mạnh, dẫn đến việc hạ giá thành sản xuất các microprocessor, đồng thời bộ nhớ RAM và flash cũng rẻ và có dung lượng lớn hơn tạo nên thuận lợi cho việc chuyển sang phát triển hệ thống nhúng có sử dụng Embedded Linux. Các hệ thống nhúng ngày nay bên cạnh các chức năng cần thiết còn có thể hỗ trợ thêm các chức năng phụ (web server, firewall, nghe nhạc...) thông qua hệ thống Embedded Linux.

Việc sử dụng Embedded Linux cho hệ thống nhúng còn giúp giảm thời gian thiết kế và phát triển, do bản thân Linux kernel được thiết kế theo module. Chúng ta có thể dễ dàng tìm được nhiều module có sẵn và hiệu quả như TCP/IP stack, X-server cho ứng dụng GUI, hoặc có thể tìm thấy driver cho thiết bị nhúng của mình đã được viết sẵn trong kernel.

Một điểm mạnh khác của Embedded Linux là open source, điều này cho phép người thiết kế can thiệp sâu hơn vào các dịch vụ và module mà hệ điều hành cung cấp. Người thiết kế có thể hiểu rõ hơn về những hàm mà họ gọi và thậm chí có thể thay đổi, tối ưu các hàm này cho thiết bị mình sử dụng. Người thiết kế còn có thể dựa vào các module driver có sẵn để tham khảo cho các driver mà họ sắp viết. Tính open source còn giúp code hỗ trợ bởi kernel có tính tin cậy cao, trước khi được đưa vào kernel source tree, code này đã được test rất nhiều trong cộng đồng và thậm chí nếu có lỗi xảy ra cũng sẽ có patch thay thế trong thời gian ngắn.

Tính sẵn sàng của Embedded Linux là rất cao. Ít có hệ điều hành nào hỗ trợ được nhiều platform và device driver như Linux. Ngoài hỗ trợ phần cứng Linux còn hỗ trợ các giao thức tiêu chuẩn (wifi, bluetooth, ...).

Tất cả những điều trên cho chúng ta thấy tính năng hiệu quả của hệ thống Embedded Linux và cũng những điểm mạnh đó làm cho xu hướng phát triển Embedded Linux ngày càng trở nên quan trọng, càng nhiều công ty đầu tư vào lĩnh vực này và càng nhiều người yêu thích Embedded Linux hơn.

Hình 5.7 – Linus Torvalds, Hình 5.8 – Chú chim cánh cụt,

Luận án tốt nghiệp Chương 5: Mạch Micro2440 5.3.2 H điều hành Embedded Linux trên Micro2440:

Micro2440 đã được nhà sản xuất cài đặt sẵn Embedded Linux với các tính năng chính sau: • Kernel Version •Linux 2.6.29 • File Systems •YAFFS2 •CRAMFS •EXT2 •FAT32 •NFS

• Drivers (all open source) •Drivers for 3 serial ports •DM9000 driver

•Audio driver (UDA1341) (audio recording supported) •RTC driver

•User LED driver •USB host driver

•True color LCD driver (including 1024 x 768 VGA) •Touch screen driver

•USB camera driver

•Drivers for USB mouse, keyboard, flash drive and portable hard disk •SD card driver, supports maximum memory of 32 G

•I2C-EEPROM driver •PWM buzzer driver •LCD backlight driver •A/D converter driver

•Watchdog driver (watchdog reset is cold reset) • Linux Applications and Utilities

•Busybox1.13 (Linux tool kit including basic Linux commands) •Telnet, FTP and inetd (remote login tool)

•BOA (web server)

•Madplay (console based mp3 player) •Snapshot (console based screen print tool)

•ifconfig, ping, route and so on (basic network commands) • Graphic User Interface (Open Source)

•Qt/Embedded 2.2 (x86 and arm)

Luận án tốt nghiệp Chương 5: Mạch Micro2440 •A/D conversion test tool

•LED test tool •User button test tool

•I2C-EEPROM read/write test tool •LCD test tool

•Ping test tool

•USB camera live preview and picture taking •Audio recorder

•Web browser •Watchdog test tool

•Network configuration tool •Backlight control tool

•Language setting tool (English and Chinese) •Handwriting tool (for touch pen testing)

•MMC/SD card and flash drive auto mounting and unmounting

Hình 5.10 – Giao diện Qtopia 2.2 trên Micro2440.

Ta hoàn toàn có thể tự biên dịch 1 phiên bản Embedded Linux từ Open source code Linux Kernel, với các thiết lập về driver tùy ý; hay sử dụng hệ thống File System khác; hay giao diện đồ họa khác Qtopia 2.2 mặc định. Thậm chí cài lại hệ điều hành khác như Windows CE hay Android trên Micro2440.

Luận án tốt nghiệp Chương 5: Mạch Micro2440 5.3.3 Quá trình khởi động Embedded Linux trên Micro2440:

Hệ điều hành Embedded Linux khởi động trên bất cứ thiết bị nào đều qua 4 giai đoạn sau:

1. Internal boot:

Bộ vi xử lý (Micro Processing Unit - MPU) khởi động, 1 chương trình nhỏ trong chip (Internal Bootloader - được xây dựng sẵn trong quá trình sản xuất chip) sẽ tìm trên các thiết bị nhớ (NOR FLASH, NAND FLASH, SPI DATA FLASH, SD Card…) sự tồn tại của chương trình khởi động đầu tiên (1st Bootloader).

Tùy vào từng MPU mà quá trình tìm kiếm này diễn ra khác nhau. Mỗi MPU sẽ hỗ trợ tìm bootloader trên một vài thiết bị nhớ và hỗ trợ cách chỉ định tìm kiếm trên thiết bị nhớ nào (thường bằng cách thiết lập các Jumper).

Internal bootloader sẽ tìm và thực thi 1st Bootloader. Nếu không tìm thấy thì sẽ chuyển sang chờ các thao tác nạp chương trình hay debug…

2. 1st Bootloader:

1st Bootloader là 1 đoạn firmware được viết và biên dịch cho MPU xác định. 1st Bootloader phải được lưu trữ ở sector đầu tiên của thiết bị lưu trữ để MPU có thể tìm thấy.

1st Bootloader có nhiệm vụ khởi động các khối chức năng chính (khối PLL tạo clock hệ thống, khối điều khiển giao tiếp Ram, Rom, ngoại vi cần thiết…), sau đó khởi động Bootloader thứ 2.

3. 2nd Bootloader:

2nd Bootloader thường là những đoạn chương trình khởi động được viết để có thể dùng được cho nhiều loại MPU, nhiều kiến trúc phần cứng khác nhau.

2nd Bootloader có nhiệm vụ chép file ảnh của nhân hệ điều hảnh (Linux Kernel Image) vào RAM, giải nén và truyền các biến môi trường (các tham số về hệ thống như các thông số bộ nhớ, file system ở đâu…), và khởi động Linux Kernel.

4. Linux Kernel:

Linux Kernel truy xuất File System (là hệ thống thư mục, tập tin cần thiết cho hệ điều hành), khởi động driver cho các thiết bị, thực thi các dịch vụ (service) cần thiết của hệ thống. Hoàn tất quá trình khởi động.

Như vậy để khởi động hệ điều hành Linux cho một mạch nhúng, ta cần 4 thành phần cơ bản tham gia: 1st Bootloader, 2nd Bootloader, Linux Kernel, và File System.

Vi xử lý S3C2440A hỗ trợ boot với NOR/NAND FLASH, EEPROM, và nhiều thiết bị lưu trữ khác. Board Micro2440 được trang bị 2MB NOR FLASH và 256MB NAND FLASH, nhà sản xuất đã lưu sẵn 1st Bootloader trên cả NOR và NAND FLASH. Ta có thể chọn boot từ NAND FLASH hay NOR FLASH bằng cách đặt hay không đặt Jumper J1 trên Core board trước khi bật nguồn cho mạch.

1st Bootloader sẽ tìm và chép 2nd Bootloader vào SDRAM sau đó nhảy đến thực thi 2nd bootloader.

2nd Bootloader, Micro2440 sử dụng Vivi Bootloader (hay tên gọi khác là SuperVivi), là 1 bootloader cho các dòng MPU của SAMSUNG, dùng để boot Linux hoặc Windows CE. Khi quá trình boot đến SuperVivi, kết nối Micro2440 với máy PC qua COM1 của Micro2440, ta sẽ có 1 cửa sổ giao diện bằng dòng lênh lệnh (console)

Luận án tốt nghiệp Chương 5: Mạch Micro2440 của SuperVivi trên màn hình máy PC. Tại đây, Vivi cung cấp cho ta một số chức năng

Một phần của tài liệu Luận văn tốt nghiệp đại học thiết kế ROBOT tự hành với hệ điều hành nhúng LINUX (Trang 29 - 90)

Tải bản đầy đủ (PDF)

(90 trang)