Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
4,1 MB
Nội dung
1 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG BÁO CÁO TÓM TẮT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC ĐÀ NẴNG NGHIÊNCỨU XÂY DỰNGDRIVERĐIỀUKHIỂN THIẾT BỊNGOẠIVICHOHỆTHỐNGNHÚNGLINUX Mã số: Đ2012-06-05 Chủ nhiệm ñề tài: Th.S Phan Ngọc Kỳ Đà Nẵng, 12/2012 2 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN KẾT QUẢ NGHIÊNCỨU 1. Thông tin chung: - Tên ñề tài: NghiêncứuxâydựngDriver ñiều khiển thiết bịngoạivi cho hệthốngnhúngLinux - Mã số: Đ2012-06-05 - Chủ nhiệm: Phan Ngọc Kỳ - Thành viên tham gia: - Cơ quan chủ trì: Trường Cao ñẳng Công nghệ - Thời gian thực hiện: 12 tháng 2. Mục tiêu: Tìm hiểu về hệthốngnhúngLinux và ứng dụng trong ñiều khiểnthiếtbị 3. Tính mới và sáng tạo: Thực hiện xâydựng Kernel Linux phục vụ cho mục ñích ñiều khiểnthiếtbị thực nghiệm trên hệthốngnhúnglinuxXâydựng chương trình ñiều khiển trên nền Linux 4. Tóm tắt kết quả nghiên cứu: Xâydựng Kernel Linuxcho bo nhúngLinux Phát triển ứng dụng ñiều khiểnthiếtbị của hệthốngnhúnglinux 5. Tên sản phẩm: Driver ñiều khiểnthiếtbị vào ra 6. Hiệu quả, phương thức chuyển giao kết quả nghiêncứu và khả năng áp dụng: 3 Các chương trình ứng dụng hoạt ñộng tốt có thể phát triển xâydựng máy tính bảng chạy hệ ñiều hành linux 7. Hình ảnh, sơ ñồ minh họa chính Ngày 12 tháng 12 năm 2012 4 Mở ñầu Đặt vấn ñề. Trong xu hướng phát triển và dự báo về công nghệ máy tính, hiện tại công nghệ máy tính ñang ở trong giai ñoạn phát triển thứ 3 hay còn gọi là thế hệ 3. Các máy tính ngày nay ñược ñưa vào sử dụng và trở thành bộ phận không thể thiếu trong các hệthống ñiều khiển từ ñơn giản cho ñến phức tạp. Với vai trò và chức năng của mình nên máy tính ngày càng thu nhỏ lại ñể thích ứng cho các bộ phận ñiều khiển nhằm tiết kiệm năng lượng và tốc ñộ. Bên cạnh ñó các tài nguyên cũng ñược cấu hình cho phù hợp với ñối tượng ñiều khiển, các hệthống máy tính nhỏ này ñược gọi là hệthống nhúng, như vậy hệthốngnhúng sẽ giúp cho việc giảm giá thành sản phẩm ñồng thời giúp chothiếtbị ñiều khiển ngày càng thân thiện hơn với con người. Do yêu cầu ñiều khiển của các thiếtbị cần phải thông minh hơn, thân thiện với con người hơn, nên cá thiếtbị cầm tay thôngdụng hiện nay thật sự trở thành một vật dụng không thể thiếu trong các hoạt ñộng hằng ngày của con người. Từ các thiết phục vụ thông tin liên lạc, với chức năng nghe gọi (thoại) và tin nhắn (text) thì ngày nay các thiếtbị này không ngừng phát triển về các tính năng khác. Hiện nay có rất nhiều công ty ñi vào sản xuất gia công hệthống nhúng, các thiếtbịnhúng không ngừng ñược phát triển và ứng dụng một cách ñại trà ñể trở thành PDA, máy tính bản PAD…. Các thiếtbị ñiều khiển dân dụng ñơn giản (máy giặt, lò vi sóng…) không ngừng gia tăng các chức năng nhằm giúp chothiếtbị ñược hoạt ñộng tối ưu, với các chức năng nổi trội và tiết kiệm năng lượng, các hệthống ñiều khiển lớn như hệthống ñiều hiển trong ô tô, các dây chuyền sản xuất tự ñộng, các hệthống quân sự… với ứng dụnghệthốngnhúng cũng không ngoài mục ñích tăng ñộ ổn ñịnh, chính xác an toàn hơn. Ở các trường cao ñẳng, ñại học có các chuyên ngành Điện tự ñộng, Điện tử ñã ñưa nội dungnhúng vào giảng dạy và xâydựng thành một chuyên ngành riêng bi ệt. Tại trường Cao ñẳng công nghệ các chuyên ngành trên ñã ñược giảng dạy các môn về vi xử lý hoặc vi ñiều khiển 5 nh ưng môn hệthốngnhúng chưa ñược quan tâm. Việc nghiêncứu về nội dụng này cũng nằm ngoài mục ñích từng bước làm chủ về kỹ thuật nhúng, hệthốngnhúng ñể làm nền tảng xâydựng thành một môn học phục vụ cho giảng dạy và nghiêncứu sau này. Hiện nay nhu cầu của xã hội trong lĩnh vực này rất lớn, nhiều thống kê ñã cho thấy ñây là một thị trường lao ñộng rất phù hợp với ñiều khiện của Việt nam chúng ta hiện nay, nếu môn này ñược triển khai ñưa vào giảng dạy sẽ giúp cho sinh viên có thêm ñược kiến thức ñồng thời tăng cơ hội chọn lựa, tìm kiếm việc làm của sinh viện sau khi ra trường. Lý do chọn ñề tài và ñối tượng nghiên cứu: Hiện nay các ứng dụngnhúng chủ yếu ñược thực hiện trên các máy tính bảng, các dong ñiện thoại thông minh hoặc các thiếtbị có hệ ñiều hành mà không sử dụng ổ cứng từ. nhiều công ty trong phạm vi ñà nẵng cũng ñã tham gia viết và gia công các ứng dụngchohệthống nhúng. Nhưng các ứng dụng này phù hợp với ñối tượng chuyên tin học bởi các ứng dụng chủ yếu tập trung ở lớp ứng dụng giải trí và các tiện ích khác. Hệthốngnhúng không phải chỉ ñơn thuần là một thiếtbị giải trí mà nó còn ñóng vai trò quan trọng trong các hệthống ñiều khiển nó có thể thay thế hoàn toàn một máy tính trung tâm. Vì vậy trong ñề tài chủ yếu là xâydựng và phát triển các ứng dụng ñiều khiểnthiếtbị trên nền Linux, xâydựng lại hệ ñiều hành ñể phù hợp hơn cho mục tiêu ñiều khiển thiết bịngoạivi Với hệthốngnhúng hiện nay rất ña dạng bởi nhiều công ty tham gia cung cấp và chế tạo nhung hiện nay thị phần lớn ñược cung cấp các chip nhúng dựa trên nền tảng ARM là hảng ñiện tử Samsung, ñây cũng là một trong những hãng có nhiều ñơn ñặt hàng tại Việt nam vì vậy ñề tài tìm hiểu xâydựng các chương trình ñiều khiển sử và thực nghiệm trên kit Micro2440SDK với chíp nhúng 2440 của hãng Samsung. Vi ệc thực hiện các chương trình ñiều khiển trên bo nhúng trên nền tảng hệ ñiều hành Linux. Linux có mã nguồn mở, chúng ta có thể 6 thao tác ch ỉnh sửa mã nguồn này ñể phù hợp với hệ thống. Linux ñược xâydựng hoàn toàn bằng ngôn ngữ lập trình C. Đây là ngôn ngữ thôngdụng và phổ biến. Người học khi nghiêncứu sẽ dễ dàng tiếp thu ñược thuật toán chương trình ñiều khiển và nguyên lý làm việc của hệ thống. Phương pháp nghiên cứu: Đề tài nghiêncứu về hệthốngnhúngxâydựng các Driver ñiều khiển trên cơ sở nghiêncứu lý thuyết lầm cơ sở xâydựng các chương trình ñiều khiển và thực nghiệm trên bo mạch nhúng nhằm tìm hiểu về hệthốngnhúng cấu trúc hoạt ñộng của bo nhúng cũng như môi trường phát triển ứng dụng ñể làm cơ sở tiếp cho các nghiên cứ ứng dụng ñiều khiển xử lý chuyên sâu trong tương lai. 7 CHƯƠNG 1. HỆTHỐNGNHÚNG 1.1. Cơ sở của hệthốngnhúng Hiện nay hệthốngnhúng ñã và ñang từng bước phát triển ở Việt nam, nó thay cho các hệthốngvi xử lý trước ñây. Hệthốngnhúng ñược ứng dụng rộng rãi trong ngành ñiện tử, máy tính và viễn thông như các hệthống ñiện thoại, các máy ño, các hệthống ñiều khiển tự ñộng trong công nghiệp, thương mại và ngân hàng. 1.1.1. Yêu cầu phần cứng Một hệthốngnhúngthông thường có các thành phần sau Vi xử lý: thông thường là các vi xử lý 32 bit, các vi xử lý ñóng vai trò bộ xử lý trung tâm trong hệthống nhúng, Bộ nhớ : bao gồm bộ nhớ RAM, EEPROM hay Flash Các ngoạivi bao gồm các giao tiếp IO như USB, Ethernet, PCI… 1.1.2. Phần mềm trong hệthốngnhúng Phần mềm là chương trình ñiều khiển hoạt ñộng của hệthống nhúng, trong một số hệthốngnhúng phần mềm còn ñược gọi là hệ ñiều hành nhúng. Nó giống như một hệ ñiều hành chạy trên máy tính nhưng chúng ñược các nhà phát triển tối ưu sao cho có thể vận hành hiệu quả trên hệthống có bộ nhớ và tốc ñộ xử lý giới hạn. Một số hệ ñiều hành chạy trên hệthốngnhúng là Linux, QNX, Windows CE… Phần mềm hệthốngnhúng cơ bản gồm các phần sau: • Bootloader, uboot, redboot • Kernel • File system 1.2. Đặc ñiểm hệthốngnhúng Các hệthốngnhúng ñược thiết kế ñể thực hiện một số nhiệm vụ chuyên dụng chứ không phải ñóng vai trò là các hệthống máy tính ña chức năng. Một số hệthống ñòi hỏi ràng buộc về tính hoạt ñộng thời gian thực ñể ñảm bảo ñộ an toàn và tính ứng dụng, một số hệ 8 th ống không ñòi hỏi hoặc ràng buộc chặt chẽ, cho phép ñơn giản hóa hệthống phần cứng ñể giảm thiểu chi phí sản xuất. Một hệthốngnhúng thường không phải là một khối riêng biệt mà là một hệthống phức tạp nằm trong thiếtbị mà nó ñiều khiển. Phần mềm ñược viết cho các hệthốngnhúng ñược gọi là firmware và ñược lưu trữ trong các chip bộ nhớ chỉ ñọc (read-only memory) hoặc bộ nhớ flash chứ không phải là trong một ổ ñĩa. Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, bộ nhớ hạn chế. 1.2.1. Thiết bịngoạivi Hệ thốngnhúng giao tiếp với bên ngoàithông qua các thiết bịngoại vi: cổng truyền thông, chân vào ra, các phương thức giao tiếp khác 1.2.2. Công cụ phát triển: Tương tự như các sản phẩm phần mềm khác, phần mềm hệthốngnhúng cũng ñược phát triển nhờ việc sử dụng các trình biên dịch, chương trình dịch hợp ngữ hoặc các công cụ gỡ rối. Tuy nhiên, các nhà thiết kế hệthốngnhúng có thể sử dụng một số công cụ chuyên dụng như: Bộ gỡ rối mạch hoặc các chương trình mô phỏng Tiện ích ñể thêm các giá trị checksum hoặc CRC vào chương trình, giúp hệthốngnhúng có thể kiểm tra tính hợp lệ của chương trình ñó. Đối với các hệthống xử lý tín hiệu số, người phát triển hệthống có thể sử dụng phần mềm workbench như MathCad hoặc Mathematica ñể mô phỏng các phép toán. Các trình biên dịch và trình liên kết chuyên dụng ñược sử dụng ñể tối ưu hóa một thiếtbị phần cứng. 9 CHƯƠNG 2. HỆTHỐNGNHÚNG 2440 2.1. Giới thiệu về KIT Micro2440SDK Kit Mcro2440 xâydựng dựa trên nền tảng ARM9, sử dụng họ vi xử lý s3c2440, kit ñược ứng dụngcho việc phát triển hệthống nhúng, ñiều khiển các thiếtbị công nghiệp, phát triển trên thiếtbị PDA và ñịnh vị GPS. Các hệthống system on chip ñược sử dụng nhiều trong các thiếtbị cầm tay như smartphone và PDA. 2.1.1. Cấu hình kỹ thuật Hình 2.1 Kit Micro2440SDK 2.1.2. Cổng giao tiếp 2.1.2.1 SDRAM Mini2440 sử dụng 2 bộ nhớ ngoài 32MB tổng cộng là 64 MB SDRAM chip (model: HY57V561620FTP), nối tiếp với nhau sẽ tạo thành data bus 32 bit tăng cao tốc ñộ truy cập, ñịa chỉ bắt ñầu là 0x30000000, sơ ñồ nguyên lý như sau: 10 2.1.2.2 Flash Mini2440 có 2 b ộ nhớ Flash: NOR Flash (SST39VF1601, 2 Mbytes) và NAND Flash (K9F1208, 64 Mbytes), lựa chọn Boot Flash thông qua swich S2. 2.1.3. Nguồn hỗ trợ Mini 2440 sử dụng nguồn 5V, tuy nhiên do các ñặc tính khác mà cần sử dụng thêm các mức: 3.3V, 1.8V, and 1.25V ñược tạo ra trực tiếp từ nguồn cấp 5V ở trên. Các nguồn ñược cấp thông qua switch S1 cấp cho toàn mạch, tuy nhiên cần chú ý là KIT không phải là một thiếtbị di ñộng nên ñây không phải là cách quản lý nguồn tốt nhất. 2.1.4. LEDs LED1 LED2 LED3 LED4 GPIO GPB5 GPB6 GPB7 GPB8 Reusable for nXBACK nXREQ nXDACK1 nDREQ1 Network Name nLED_1 nLED_2 nLED_3 nLED_4 2.1.5. Nút Bấm Có 6 nút bấm ñược ñưa vào trên KIT, nối trực tiếp với các chân ngắt của Chip và là chân hoạt ñộng tích cực mức thấp. các chân có thể sử dụng tùy mục ñích khác nhau của người sử dụng, các button này ñược nối với CON1, 2.1.6. A/D input test Có tổng cộng 4 kênh A/D ñược nối với CON4 GOIP. Để thuận lợi cho quá trình test AIN0 ñược kết nối với một biến trở R0 ñể thực nghiệm quá trình 2.1.7. Serial Port Có tổng cộng 3 cổng Serial trên board UART0,1,2. Trong hầu hết các ứng dụng, chỉ sử dụng ñến 3 chức năng ñơn giản như truyền và nh ận dữ liệu, sẽ tương ứng với CON1,2,3 trên board. Để cho [...]... /etc/init.d/rcS ñ h ñi u hành có th load các device driver và ch y các ng d ng Hình 3.5 Sơ ñ xây d ng k t n i và phát tri n ng d ng nhúng Đ chu n b chovi c l p trình ng d ng c a kit ta c n xây d ng mô hình k t n i,trong ñó ngư i l p trình có th coding trên máy tính ch y WinXP ho c Linux Các máy này có th k t n i v i Workstation thông qua ñư ng Ethernet Vi c biên d ch source có th 15 th c hi n trên... y th chưong trình ng d ng trên bo nhúng 17 CHƯƠNG 4 XÂY D NG DRIVER TRÊN BOARD NHÚNG 4.1 Gi i thi u chương Trên cơ s tìm hi u và xây d ng thành công kernel cho bo nhúng, cũng như xây d ng th nghi m chương trình trên n n ngôn ng C và s d ng trình d ch chéo ñ t o ra file có th tương thích và ho t ñ ng ñư c trên bo m ch ARM Trong chương này s ti p ti p t c tìm hi u và xây d ng th nghi m m t s chương trình... trình t máy Linux tr m thông qua các giao th c SSHserver, FTTF32, ta có th x lý và chia s tài nguyên gi a các môi trư ng làm vi c v i nhau V i m c ñích c a ñ tài là xây d ng Driver ñi u hi n thi t b ngo i vi, ñ tài cũng ñã xây d ng và hoàn thi n các Driver ñi u khi n GPIO, c u hình lên kít các chương trình ñi u khi n khác ñư c xây d ng và ti n hành th c nghi m tr c ti p trên kit trên kit nhúng nh m... di n cho h th ng nhúng s d ng chíp lõi ARM Đ tài ñã c u hình ñư c file h th ng c a bo cho các môi trư ng kh i ñ ng khác nhau và xây d ng Kernal m i và th nghi m Kernel m i ñư c t o ra ñ kh i ñ ng trên Sdflash Kit cũng ñư c c u hình l i bi n môi trư ng cho phép bo ch y linux m i t ñĩa SDflash ho c trên USB Bên c nh ñó trong ñ tài cũng ñã th c hi n xây d ng hoàn thi n môi trư ng phát tri n dành cho ngư... flash, cài ñ t supervivi, cài ñ t kernel, cài ñ t root file system Ti n hành m m t c a s Terminal th 2 (L nh t t Ctrl + Alt + T) ñ m ng d ng usbpush bên c a s minicom, các b n ti n hành ch n các bư c mà chúng ta c n ti n hành theo th t [x] format Nand Flash or Linux [v] Download supervivi [k] Download Linux kernel [y] Download root_yaffs image 3.2 C u hình, biên d ch h ñi u hành Embedded Linux Kernel là... và ti n hành th c nghi m tr c ti p trên kit trên kit nhúng nh m ñánh giá ho t ñ ng c a driver ñ ng th i ñánh giá l i ho t ñ ng c a Kernel ñã ñư c xây d ng Phát tri n các ng d ng cho h th ng nhúng hay các máy tính b ng hi n nay ñư c chú ý r t nhi u b i ph m vi nh hư ng c a nó trong cu c s ng Nhưng các ng d ng vi t cho các máy tính b ng hi n nay h u h t t p trung vào lĩnh v c gi i trí, còn ít ng d ng,... c môn h c này tr thành môn h c gi ng d y chính cho sinh vi n m t s ngành nh m t o ñi u ki n và m thêm cơ h i vi c làm sau ra trư ng ñ tài cũng c n phát tri n thêm trên môi trư ng Android ho c Wince Đ tài có th phát tri n thêm ñ có th hư ng ñ n thi t k và xây d ng hoàn thi n m t máy tính b ng ho c m t kit th c hành h th ng nhúngcho công tác ñào t o và nghiên c u sau này 26 ... gpio160 là chân output ho c là chân input $ echo "out" > /sys/class/gpio/gpio165/direction $ echo "in" > /sys/class/gpio/gpio165/direction 3 Thi t l p giá tr xu t là giá tr logic “0” hay “1” $ echo 0 > /sys/class/gpio/gpio165/value 18 $ echo 1 > /sys/class/gpio/gpio165/value Sau khi kh i ñ ng chương trìnhtrình ñi u khi n và k t n i port m r ng v i m ch ngo i vi bên ngoài ta có th th y ñư c các led sáng... ti n trình 4.5 Xây d ng giao di n ñi u khi n thi t b 4.5.1 Công c phát tri n QTopia Có th phát tri n ng d ng Qt trên 3 n n t ng máy tính khác nhau: Linux, Windows, ho c Mac Giao di n ñ h a Qt là n n t ng xây d ng các ng d ng ch y ñư c trên nhi u h ñi u hành Ph n l n các ng d ng xây d ng b ng Qt ñ u có giao di n ñ h a, do v y Qt còn ñư c coi như là m t b công c (widget toolkitnày 4.5.2 Xây d ng chương... biên d ch thành công ta ti p t c v i vi c t o file nh c a h ñi u hành b ng l nh make zImage K t thúc công ño n này ta s ñư c file nh trong thư m c linux- 2.6.32/arch/arm/boot File nh này s ñư c dùng ñ ñưa vào làm h ñi u hành cho bo nhúng 3.3 RootFilesystem Linux cung c p nhi u lo i filesystem hơn b t kỳ h ñi u hành nào Filesystem ñư c tách riêng thành 3 l p cơ b n, bao g m: 1 Filesystem ñư c ñư c ñ t . hiện xây dựng Kernel Linux phục vụ cho mục ñích ñiều khiển thiết bị thực nghiệm trên hệ thống nhúng linux Xây dựng chương trình ñiều khiển trên nền Linux 4. Tóm tắt kết quả nghiên cứu: Xây dựng. làm vi c của hệ thống. Phương pháp nghiên cứu: Đề tài nghiên cứu về hệ thống nhúng xây dựng các Driver ñiều khiển trên cơ sở nghiên cứu lý thuyết lầm cơ sở xây dựng các chương trình ñiều khiển. chủ yếu là xây dựng và phát triển các ứng dụng ñiều khiển thiết bị trên nền Linux, xây dựng lại hệ ñiều hành ñể phù hợp hơn cho mục tiêu ñiều khiển thiết bị ngoại vi Với hệ thống nhúng hiện