LỜI MỞ ĐẦU Thế giới ngày nay với khoa học kĩ thuật phát triển mạnh mẽ cuộc sống con ngƣời ngày càng đƣợc phát triển tốt hơn. Khoa học kỹ thuật đem lại nhiều tiện ích thiết thực hơn cho cuộc sống con ngƣời. Góp phần to lớn trong quá trình phát triển của khoa học kỹ thuật là sự phát triển mạnh mẽ của vi xử lý. Từ bộ vi xử lý đầu tiên Intel 4004 đƣợc sản xuất bởi công ty Intel vào năm 1971, đến nay ngành công nghiệp vi xử lý đã phát triển vƣợt bậc và đa dạng với nhiều loại nhƣ: 8951, PIC, AVR, ARM, Pentium,Core i7,….
Cùng với sự phát triển đa dạng về chủng loại thì tài nguyên của vi xử lý cũng đƣợc nâng cao. Các vi xử lý ngày nay cung cấp cho ngƣời dùng một nguồn tài nguyên rộng lớn và phong phú. Có thể đáp ứng đƣợc nhiều yêu cầu khác nhau trong thƣc tế. Để giúp cho ngƣời dùng sử dụng hiệu quả và triệt để các tài nguyên này thì hệ thống nhúng ra đời.Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị đƣợc nhúng vào trong một môi trƣờng hay một hệ thống mẹ.
Đó là các hệ thống tích hợp cả phần cứng và phần phềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Với sự ra đời của hệ thống nhúng thì vi xử lý ngày càng đƣợc ứng dụng rộng rãi trong đời sống cũng nhƣ trong công nghiệp vì khả năng xử lý nhanh, đa dạng, tiết kiệm năng lƣợng và độ ổn định của hệ thống nhúng. Tuy hệ thống nhúng rất phổ biến trên toàn thế giới và là hƣớng phát triển của ngành Điện tử sau này nhƣng hiện nay ở Việt Nam độ ngũ kỹ sƣ hiểu biết về hệ thống nhúng còn rất hạn chế không đáp ứng đƣợc nhu cầu nhân lực trong lĩnh vực này. Vì vậy việc biên soạn giáo trình về hệ thống nhúng là một yêu cầu cần thiết trong thời điểm hiện tại cũng nhƣ trong tƣơng lai.
Nhận thấy đƣợc nhu cầu cấp thiết đó nên sinh viên thực hiện đã chọn đề tài: “LẬP TRÌNH NHÖNG ARM TRÊN LINUX” để làm đồ án tốt nghiệp cho mình. Với mục tiêu xác định nhƣ trên, đồ án đƣợc chia ra làm 3 phần với nội dung cơ bản nhƣ sau: 1 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chƣơng 1: Tổng quan về hệ thống nhúng. Chƣơng 2: Vi xử lý ARM. Chƣơng 3: Hê điều hành nhúng Embedded Linux.
Chƣơng 4: Lập trình nhúng ARM trên Linux. Do thời gian thực hiện ngắn cộng với vốn kiến thức còn rất hạn chế nên đồ án chắc chắn còn nhiều thiếu sót, em rất mong nhận đƣợc sự chỉ bảo của các thầy cô để hoàn thiện hơn bài viết của mình. 2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƢƠNG 1: TỔNG QUAN VỀ HỆ THỐNG NHÚNG 1. Khái niệm về hệ thống nhúng Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị đƣợc nhúng vào trong một môi trƣờng hay một hệ thống mẹ.
Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao. Hệ thống nhúng thƣờng đƣợc thiết kế để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn nhƣ máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thƣờng đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung.
Vì hệ thống chỉ đƣợc xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ƣu hóa nó nhằm giảm thiểu kích thƣớc và chi phí sản xuất. Các hệ thống nhúng thƣờng đƣợc sản xuất hàng loạt với số lƣợng lớn. Hệ thống nhúng rất đa dạng, phong phú về chủng loại. Đó có thể là những thiết bị cầm tay nhỏ gọn nhƣ đồng hồ kĩ thuật số và máy chơi nhạc MP3, hoặc những sản phẩm lớn nhƣ đèn giao thông, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lƣợng hạt nhân.
Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lƣới đƣợc nằm gọn trong một lớp vỏ máy lớn. Nhƣ vậy không phải tất cả các sản phẩm đo lƣờng và điều khiển đều là các hệ nhúng. Hiện nay chúng ta còn gặp nhiều hệ thống điều khiển tự động hoạt động theo nguyên tắc cơ khí, thuỷ lực, khí nén, rơ le, hoặc diện tử tƣơng tự… Ngƣợc lại phần lớn các sản phẩm cơ điện tử hiện nay đều có nhúng trong nó các chip vi xử lý hoặc một mạng nhúng. Ta biết rằng cơ điện tử là sự cộng năng của các công nghệ cơ khí, điện tử, điều khiển và công nghệ thông tin.
Sự phối hợp đa ngành này tạo nên sự vƣợt trội của các sản phẩm cơ điện tử. Sản phẩm cơ điện tử ngày càng tinh sảo và ngày càng thông minh mà phần hồn của nó do các phần mềm nhúng trong nó tạo nên. Các sản phẩm cơ điện tử là các sản phẩm có ít nhất một quá trình cơ khí (thƣờng là một quá trình chuyển động), là đối tƣợng để điều khiển do vậy các sản phẩm cơ điện tử ngày nay thƣờng có các hệ nhúng trong nó nhƣng ngƣợc lại không phải hệ thống nhúng nào cũng là một hệ cơ điện tử. 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Điểm qua sự phát triển của máy tính ta thấy nó đã trải qua 3 giai đoạn.
Giai đoạn năm 1960-1980 là giai đoạn phát triển của máy tính lớn và máy mini (main frame và mini computer) với khoảng 1000 chip/máy và mỗi máy có khoảng 100 ngƣời dùng. Giai đoạn từ 1980-2000 là giai đoạn phát triển của máy PC với số chip vi xử lý khoảng 10 chip/máy và thông thƣờng cho một ngƣời sử dụng. Thời đại hậu PC (Post-PC Era) là giai đoạn mà mọi đồ dùng đều có chip, trung bình 1 chip/một máy và số máy dùng cho một ngƣời lên đến >100 máy. Giai đoạn hậu PC đƣợc dự báo từ 2001-2010 khi các thiết bị xung quanh ta đều đƣợc thông minh hoá và kết nối với nhau thành mạng tạo thành môi trƣờng thông minh phục vụ cho con ngƣời.
Điểm qua về chức năng xử lý tin ở PC và ở các thiết bị nhúng có những nét khác biệt. Đối với PC và mạng Internet chức năng xử lý đang đƣợc phát triển mạnh ở các lĩnh vực nhƣ thƣơng mại điện tử, ngân hàng điện tử, chính phủ điện tử, thƣ viện điện tử, đào tạo từ xa, báo điện tử….Các ứng dụng này thƣờng sử dụng máy PC để bàn, mạng WAN, LAN hoạt động trong thế giới ảo. Còn đối với các hệ nhúng thì chức năng xử lý tính toán đƣợc ứng dụng cụ thể cho các thiết bị vật lý (thế giới thật) nhƣ mobile phone, quần áo thông minh, các đồ điện tử cần tay, thiết bị y tế, xe ô tô, tàu tốc hành, phƣơng tiện vận tải thông minh, máy đo, đầu đo cơ cấu chấp hành thông minh, các hệ thống điều khiển, nhà thông minh, thiết bị gia dụng thông minh … Hệ thống nhúngcó vai trò đảm nhận một phần công việc cụ thể của hệ thống mẹ. hệ thống nhúngcó thể là một hệ thống phần cứng và cũng có thể là một hệ thống phần mềm.
Đặc điểm của hệ thống nhúnglà hoạt động ổn định và có tính năng tự động hoá cao. hệ thống nhúngđƣợc thiết kế để thực hiện một chứa năng chuyên biệt nào đó. Khác với các máy tính đa năng, chẳng hạn nhƣ PC, một hệ thống nhúng chỉ thực hiện một hay một vài chức năng nhất định, thƣờng đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung. Vì hệ thống chỉ đƣợc xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ƣu hóa nó nhằm giảm thiểu kích thƣớc và chi phí sản xuất.
Các hệ thống nhúngthƣờng đƣợc sản xuất hàng loạt với số lƣợng lớn. Hệ thống nhúngrất đa dạng, phong phú về chủng loại. Đó có thể là những thiết bị cầm tay nhỏ gọn nhƣ đồng hồ kĩ thuật số và máy chơi nhạc MP3, các thiết bị điện tử dân dụng (máy giặt, tủ lạnh, TV.), các thiết bị điện tử “thông minh” (điện thoại di động), thiết bị truyền thông, thiết bị y tế, xe hơi, thậm chí cả trong một máy tính cá nhân (card mở rộng), hoặc những sản phẩm lớn nhƣ đèn giao thông, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lƣợng hạt nhân. Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lƣới đƣợc nằm gọn trong một lớp vỏ máy lớn.
4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các thiết bị PDA hoặc máy tính cầm tay cũng có một số đặc điểm tƣơng tự với hệ thống nhúng nhƣ các hệ điều hành hoặc vi xử lý điều khiển chúng nhƣng các thiết bị này không phải là hệ thống nhúng thật sự bởi chúng là các thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết bị ngoại vi. Có rất nhiều hãng sản xuất bộ vi xử lý, phần cứng và phần mềm trong thị trƣờng hệ thống nhúng và ứng với mỗi nhà sản xuất lại có nhiều dòng sản phẩm, phong phú về chủng loại và giá thành: • Những bộ vi xử lý và phần cứng khác nhau: Texas Instrument, Freescale, ARM, Intel, Motorola, Atmel, AVR, Renesas… • Những hệ điều hành khác nhau: QNX, uITRON, VxWorks, Windows CE/XP Embedded, Embedded Linux, Osek, Symbian… • Những ngôn ngữ lập trình khác nhau: C/C++, B#, Ada, Assembly, PMC, LabView, PLC… 1. Bộ xử lý trong hệ nhúng 1.1 Kiến trúc CPU: Các bộ xử lý trong hệ thống nhúng có thể đƣợc chia thành hai loại: vi xử lý và vi điều khiển. Các vi điều khiển thƣờng có các thiết bị ngoại vi đƣợc tích hợp trên chip nhằm giảm kích thƣớc của hệ thống.