Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
7,05 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG XÂY DỰNG CÁC BÀI THÍ NGHIỆM TRÊN HỆ THỐNG NHÚNG ARM CORTEX S K C 0 9 MÃ SỐ: T2011 - 11 S KC 0 Tp Hồ Chí Minh, 2011 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG XÂY DỰNG CÁC BÀI THÍ NGHIỆM TRÊN HỆ THỐNG NHÚNG ARM CORTEX MÃ SỐ : T2011-11 CHỦ NHIỆM ĐỀ TÀI : KS LÊ MINH THÀNH VIÊN ĐỀ TÀI : KS PHẠM VĂN KHOA Tp.HCM,THÁNG NĂM 2012 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex NGƯỜI THAM GIA ĐỀ TÀI Chủ nhiệm đề tài: Lê Minh Học vị, chức danh khoa học: Kỹ sư, Giảng viên Thành viên: Phạm Văn Khoa Học vị, chức danh khoa học: Kỹ sư, Trợ Giảng Đơn vị phối hợp: Khoa Điện – Điện Tử, trường ĐH Sư Phạm Kỹ Thuật TPHCM Trang i Xây dựng thí nghiệm hệ thống nhúng ARM Cortex MỤC LỤC NGƯỜI THAM GIA ĐỀ TÀI i DANH SÁCH HÌNH iv DANH SÁCH BẢNG vi THÔNG TIN KẾT QUẢ NGHIÊN CỨU vii Chương GIỚI THIỆU 1.1 Tình Hình Nghiên Cứu 1.2 Tính Cấp Thiết Của Đề Tài 1.3 Mục Tiêu Nghiên cứu Chương VI ĐIỀU KHIỂN ARM CORTEX M3 2.1 Giới Thiệu Về Vi Điều Khiển ARM Cortex – M3 2.2 Kiến Trúc Vi Điều Khiển ARM Cortex – M3 2.2.1 Lõi Cortex – M3 2.2 Bộ điều khiển vector ngắt lồng (NVIC) 2.2.3 Các nhánh xử lý Cortex 10 2.2.4 Ngoại vi STM32 – Cortex – M3 11 Chương 18 KIT OPENCMX – STM3210D 18 3.1 Đặc Tả Phần Cứng Board KIT 18 3.2 Đặc Tính Kỹ Thuật Của MCU STM32F103RTD6 19 3.3 Sơ Đồ Thiết Kế Phần Cứng Từng Khối Chức Năng Của Board 25 Chương 29 XÂY DỰNG BÀI THÍ NGHIỆM TRÊN BOARD STM32 29 4.1 Giới Thiệu Về CMSIS 29 4.2 Các Bài Thí Nghiệm 31 4.2.1 Giao Tiếp Led Đơn GPIO 31 Trang ii Xây dựng thí nghiệm hệ thống nhúng ARM Cortex 4.2.2 Cách Cấu Hình Cho Công Cụ KeilC Biên Dịch Và Nạp Chương Trình 36 4.2.3 Giao Tiếp LCD Chế Độ 4bit 38 4.2.3 Lập trình External Interrupt với STM32 42 4.2.4 Lập trình USART với STM32 44 4.2.5 Lập trình ADC với STM32 46 4.2.6 Thiết kế phần mềm giao tiếp với KIT 49 Chương 55 KẾT LUẬN 55 5.1 Tổng kết nhận xét 55 5.2 Tồn hướng phát triển đề tài 55 5.2.1 Tồn 55 5.2.2 Hướng phát triển đề tài 55 Trang iii Xây dựng thí nghiệm hệ thống nhúng ARM Cortex DANH SÁCH HÌNH Hình 2.1 Kiến trúc hệ thống Hình 2.2 Cấu trúc VĐK Cortex-M3 Hình 2.3 Bản đồ nhớ Hình 2.4 Mô tả bit-banding Cortex-M3 Hình 2.5 Kiến trúc ngoại vi Cortex-M3 11 Hình 2.6 Cấu trúc SPI 13 Hình 2.7 Cấu trúc USART 14 Hình 2.8 Hỗ trợ giao tiếp chế độ hafl-duplex 14 Hình 2.9 Giao tiếp với smartcard hồng ngoại 15 Hình 2.10 Hỗ trợ giao tiếp đồng SPI 15 Hình 2.11 Sơ đồ khối DAC 17 Hình 3.1 Hình ảnh thực tế board 18 Hình 3.2 Khối VDK STM32F103RD 25 Hình 3.3 Khối giao tiếp nối tiếp bất đồng UART 26 Hình 3.4 Khối chuyển đổi tương tự-số điều rộng xung 26 Hình 3.5 Khối cảm biến nhiệt độ 27 Hình 3.6 Khối giao tiếp led đơn GPIO 27 Hình 3.7 Khối giao tiếp LCD, CAN, PS2 28 Hình 4.1 Kiến trúc lớp trừu tượng hoá CMSIS 30 Hình 4.2 Kết nối phần cứng cho led đơn 32 Hình 4.3 Thanh ghi GPIOx_CRL 33 Hình 4.4 Thiết lập thiết bị VDK STM32F103RD để biên dịch 36 Hình 4.5 Cấu hình file nạp cho VDK 37 Hình 4.6 Thiết lập cấu hình cho thiết bị nạp ULINK 38 Hình 4.7 Giao tiếp LCD chế độ 4bit 38 Hình 4.8 Giao tiếp với nút nhấn ngắt 42 Hình 4.9 Khối giao tiếp UART 44 Trang iv Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.10 Giao tiếp với biến trở điều chỉnh ADC 47 Hình 4.11 Tab “Config” 50 Hình 4.12 Tab “File mode” 51 Hình 4.13 Tab “DAC mode” 52 Hình 4.14 Tab “ADC mode” 53 Hình 4.15 Tab “LED mode” 54 Trang v Xây dựng thí nghiệm hệ thống nhúng ARM Cortex DANH SÁCH BẢNG Bảng 3.1 So sánh chức Timer 23 Bảng 4.1 Chọn chế độ hoạt động cho kit 49 Trang vi Xây dựng thí nghiệm hệ thống nhúng ARM Cortex THÔNG TIN KẾT QUẢ NGHIÊN CỨU ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG 1.Thông tin chung: Tên đề tài: Xây dựng thí nghiệm hệ thống nhúng ARM Cortex – M3 Mã số: T2011-11 Chủ nhiệm đề tài: Ks Lê Minh Tel.: 0978446916 E-mail: Cơ quan chủ trì đề tài: Trường Đại học Sư Phạm Kỹ Thuật, TP HCM Cơ quan cá nhân phối hợp thực hiện: KS Phạm Văn Khoa Thời gian thực hiện: Từ 15/05/2011 đến 25/02/2012 Mục tiêu: Xây dựng thí nghiệm KIT thí nghiệm sử dụng vi điều khiển ARM Cortex – M3 Nội dung chính: Nghiên cứu họ vi điều khiển ARM Cortex – M3, KIT thí nghiệm OPENCMX – STM3210D, xây dựng thí nghiệm KIT Kết đạt (khoa học, ứng dụng, đào tạo, kinh tế – xã hội, v.v…) - Khoa học: tìm hiểu khai thác họ vi điều khiển 32 bit lõi ARM xây dựng thí nghiệm KIT sử dụng vi điều khiển - Ứng dụng: Tạo sở khoa học cho việc tiếp cận dòng vi điều khiển nhanh, ứng dụng nhiều lãnh vực - Đào tạo: Có thể sử dụng làm tài liệu nghiên cứu cho sinh viên tài liệu tham khảo thêm cho giảng viên Trang vii Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Điểm - Đây họ vi điều khiển tương đối thị trường Việt nam - Chưa sử dụng rộng rãi việc giảng dạy trường Đại học Địa ứng dụng Kết đề tài ứng dụng cho: - Sinh viên trường ĐH SPKT TPHCM - Các sinh viên, kỹ sư điện tử, điện tử viễn thông, kỹ thuật máy tính khác có quan tâm Trưởng Đơn vị (ký, họ tên, đóng dấu) Chủ nhiệm đề tài (ký, họ tên) Lê Minh Trang viii Xây dựng thí nghiệm hệ thống nhúng ARM Cortex } 4.2.3 Lập trình External Interrupt với STM32 Hình 4.8 Giao tiếp với nút nhấn ngắt Vi điều khiển STM32F103RCT6 kích hoạt ngắt hardware software (dùng để mô thao tác nhấn nút) Hàm xử lí ngắt xuất xung pin để nhấp nháy LED Chip ARM Cortex M3-STM32F103RCT6 cấp nguồn +3.3V thông qua cổng USB PC (hoặc dùng nguồn từ bên ngoài), dùng thạch anh 8MHz, sau qua nhân tần số đưa vào CPU lên tới 72MHz Pin PA0 kết nối với nút nhấn OK 8pin dùng để kết nối với LED là: PB8->PB15 Các pin nối với LED thông qua điện trở 330OHM lên nguồn +3.3V Chương trình viết dựa tảng thư viện chuẩn CMSIS công ty ARM đề xuất thư viện truy xuất ngoại vi tương thích chuẩn CMSIS công ty ST cung cấp /* Configure PA.13 (JTMS/SWDAT), PA.14 (JTCK/SWCLK) and PA.15 (JTDI) as output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; Trang 42 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure PA.01 as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); /* SEL Button */ GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1); /* Clear the the EXTI line interrupt pending bit */ EXTI_ClearITPendingBit(KEY_BUTTON_EXTI_LINE); EXTI_InitStructure.EXTI_Mode EXTI_InitStructure.EXTI_Line EXTI_InitStructure.EXTI_Trigger EXTI_InitStructure.EXTI_LineCmd EXTI_Init(&EXTI_InitStructure); = EXTI_Mode_Interrupt; = KEY_BUTTON_EXTI_LINE; = EXTI_Trigger_Falling; = ENABLE; /* Enable the EXTI1 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); while (1) { /* Generate software interrupt: simulate a falling edge applied on Key Button EXTI line */ EXTI_GenerateSWInterrupt(KEY_BUTTON_EXTI_LINE); // if you don't want to use software interrupt // to simulate a falling edge applied on Key Button EXTI line // you can comment this line and press on "OK Button" to toggle the LEDs /* Insert delay */ Delay(5); } Trang 43 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hàm tạo khoảng thời gian trễ để nhấp nháy LED void Delay( IO uint32_t num) { IO uint32_t index = 0; /* default system clock is 72MHz */ for(index = (720000 * num); index != 0; index ) { } } 4.2.4 Lập trình USART với STM32 Hình 4.9 Khối giao tiếp UART Chương trình xuất dòng chữ "USART Printf Example: retarget the C library printf function to the USART" qua cổng USART1 vi điều khiển STM32F103D, tức cổng COM1 kít phát triển GE-M3M-2 Chip ARM Cortex m3-STM32F103RD cấp nguồn +3.3V thông qua cổng USB PC, dùng thạch anh 8MHz, sau qua nhân tần số đưa vào CPU lên tới 72MHz pin Tx Rx USART1 là: PA9, PA10 Chương trình viết dựa tảng thư viện chuẩn CMSIS công ty ARM đề xuất thư viện truy xuất ngoại vi tương thích chuẩn CMSIS công ty ST cung cấp Trang 44 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Cổng USART1 cài đặt thông số hoạt động sau: BaudRate = 115200 baud Word Length = Bits One Stop Bit No parity Hardware flow control disabled (RTS and CTS signals) Receive and transmit enabled /* configure UART pins */ /* Enable UART clock, if using USART2 or USART3 we must use RCC_APB1PeriphClockCmd(RCC_APB1Periph_USARTx, ENABLE) */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /* Configure PA9 for USART Tx as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure PA10 for USART Rx as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); /* USARTx configured as follow: - BaudRate = 115200 baud - Word Length = Bits - One Stop Bit - No parity - Hardware flow control disabled (RTS and CTS signals) - Receive and transmit enabled */ USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; Trang 45 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /* USART configuration */ USART_Init(USART1, &USART_InitStructure); /* Enable USART */ USART_Cmd(USART1, ENABLE); while (1) { /* Toggle PA.1 pin */ GPIO_WriteBit(GPIOA, GPIO_Pin_1, (BitAction)(1 GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1))); /* Output a message on Hyperterminal using printf function */ printf("\n\rUSART Printf Example: retarget the C library printf function to the USART\n\r"); /* Insert delay */ Delay(5); } } 4.2.5 Lập trình ADC với STM32 Trang 46 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.10 Giao tiếp với biến trở điều chỉnh ADC Vi điều khiển STM32F103RD chuyển đổi tín hiệu analog từ biến trở tinh chỉnh qua kênh AIN2, sau trình chuyển đổi ADC thành công, chương trình đọc giá trị digital, sau tính toán chuyển thành giá trị điện áp xuất thông tin qua cổng UART1, giá trị điện áp xuất giá trị điện áp chân đọc biến trở Chip ARM Cortex M3-STM32F103RD cấp nguồn +3.3V thông qua cổng USB PC, dùng thạch anh 8MHz, sau qua nhân tần số đưa vào CPU lên tới 72MHz Pin PA1 kết nối với chân trích điện áp biến trở 10k thông qua điện trở hạn dòng 1k Chương trình viết dựa tảng thư viện chuẩn CMSIS công ty ARM đề xuất thư viện truy xuất ngoại vi tương thích chuẩn CMSIS công ty ST cung cấp *configure ADC pins */ /* Configure PA.02 (ADC Channel2) as analog input -*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); Trang 47 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex /* Configure clocks for ADC and GPIO PORT */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); /* ADCx configuration */ ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 Regular Channel Configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_55Cycles5); /* Enable ADC1 */ ADC_Cmd(ADC1, ENABLE); /* Enable Vrefint channel enable temperature sensor for ADC module */ ADC_TempSensorVrefintCmd(ENABLE); /* Enable ADC1 reset calibaration register */ ADC_ResetCalibration(ADC1); /* Check the end of ADC1 reset calibration register */ while(ADC_GetResetCalibrationStatus(ADC1)); /* Start ADC1 calibaration */ ADC_StartCalibration(ADC1); /* Check the end of ADC1 calibration */ while(ADC_GetCalibrationStatus(ADC1)); /* Start ADC1 Software Conversion */ ADC_SoftwareStartConvCmd(ADC1, ENABLE); /* start main program */ while (1) { /* get adc raw value */ adc_raw_val = ADC_GetConversionValue(ADC1); /* calculate voltage value */ potentionmeter_val = adc_raw_val*ADC_VREF/ADC_12BIT_FACTOR; /* Output a message on Hyperterminal using printf function */ printf("\n\rPoten_Volt = %.2fV\n\r", (f32)potentionmeter_val/100.0); /* Insert delay */ Trang 48 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Delay(5); } } 4.2.6 Thiết kế phần mềm giao tiếp với KIT 4.2.6.1 Giới thiệu Phần mềm giao tiếp với KIT giao thức serial, tốc độ baud 115200 Phần mềm dùng để điều khiển KIT thực demo giao tiếp với thiết bị ngoại vi ADC, DAC, LED, LCD Giao diện chia thành tab, tab cung cấp điều khiển ứng với thành phần ngoại vi, tab để cấu hình kết nối với KIT qua cổng serial Lưu ý: để thực chức thành phần ngoại vi, cần thiết lập chế độ tương ứng với ngoại vi KIT trước (Bảng 4.1) Bảng 4.1 Chọn chế độ hoạt động cho kit Chân Chân PC5 Thứ tự PC4 0 file mode 0 dac mode 1 adc mode 1 led mode 4.2.6.2 Cách sử dụng phần mềm 4.2.6.2.1 Tab “COM Config” Trang 49 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.11 Tab “Config” Danh sách cổng COM có Nút nhấn để thực kết nối ngắt kết nối với cổng COM chọn danh sách “1” Báo trạng thái kết nối/ngắt kết nối 4.2.6.2.2 Tab “File mode” Trang 50 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.12 Tab “File mode” Lưu ý: cần gắn thẻ nhớ vào KIT Nút nhấn để lấy danh sách file SD card Danh sách file có SD card Nút nhấn Play/stop, dùng để phát/ dừng file nhạc mp3 (nếu file chọn file mp3) Hiển thị nội dung bên file text chọn danh sách 4.2.6.2.3 Tab “DAC” Trang 51 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.13 Tab “DAC mode” Người dùng lựa chọn dạng tín hiệu phát liên tục (mức áp tùy chọn), dạng sin, vuông, tam giác, dạng vuông với T on T off tùy chọn Nhập vào mức % áp (so với VDD) dạng tín hiệu chọn liên tục, tần số tín hiệu chọn dạng sin, vuông, hay tam giác Người dùng nhập vào Ton, Toff dạng tín hiệu chọn vuông tùy chọn Nút nhấn để thực việc phát tín hiệu ngoại vi DAC 4.2.6.2.4 Tab “ADC” Trang 52 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.14 Tab “ADC mode” Nút nhấn để lấy mức % áp vào so với VDD qua chuyển đổi ADC Đặt lấy giá trị giới hạn (%) chức cảnh báo mức thực KIT Đặt lấy giá trị giới hạn (%) Nút nhấn kích hoạt chức cảnh báo với thời gian delay lần kiểm tra người dùng nhập vào 4.2.6.2.5 Tab “Led Mode” Trang 53 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Hình 4.15 Tab “LED mode” Người dùng tùy chọn kiểu sang LED theo nhiều chế độ như: - Dịch LED (trái/ phải) - Sáng dồn (trái/ phải) - Tắt dần (trái/ phải) - Sang dồn, tắt dần (trái/ phải) Kích hoạt chế độ sang LED chọn với thời gian delay người dùng tùy chọn Trang 54 Xây dựng thí nghiệm hệ thống nhúng ARM Cortex Chương KẾT LUẬN 5.1 Tổng kết nhận xét Đề tài: “XÂY DỰNG CÁC BÀI THÍ NGHIỆM TRÊN HỆ THỐNG NHÚNG ARM CORTEX” nghiên cứu đạt mục tiêu sau: Nghiên cứu VDK 32bit Arm Cortex M3 Nghiên cứu board phát triển dành cho Arm Cortex M3 Nghiên cứu môi trường phát triển ứng dụng cho Arm Cortex M3 Xây dựng thí nghiệm dựa Board phát triển 5.2 Tồn hướng phát triển đề tài 5.2.1 Tồn Trong trình thực đề tài, đạt số kết xong số tồn sau: Các thí nghiệm rời rạc, chủ yếu để minh họa tính phần cứng hỗ trợ Arm Cortex M3 Chưa thực ứng dụng để tổng hợp tính kỹ thuật VDK nhằm xây dựng ứng dụng thực tế hoàn chỉnh 5.2.2 Hướng phát triển đề tài Như trình bày phần trên, Arm Cortex M3 loại VDK 32bit không hỗ trợ MMU song thiết kế với đầy đủ tính ngoại vi từ đến cao cấp Ở VDK32bit thiết kế để chạy với ứng dụng thời gian thực như: uLinux, Milos hay hệ điều hành TOPPERS-ASP Như vậy, hướng phát triển tương lai đề tài thực chạy HDH cho VDK32bit để xây dựng ứng dụng cao cấp thực nhiều chức dựa chế lập lịch để xử lý Trang 55 [...]... 16 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex Hình 2.11 Sơ đồ khối của DAC Trang 17 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex Chương 3 KIT OPENCMX – STM3210D 3.1 Đặc Tả Phần Cứng Board KIT Hình 3.1 Hình ảnh thực tế của board Các thành phần trên board gồm: Cấp nguồn Cổng kết nối USB Audio out Mic Trang 18 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex. .. nghệ mới trước khi làm việc Nhằm nâng cao kiến thức cho người nghiên cứu, và triển khai tài liệu học tập đến sinh viên, giúp sinh viên tiếp cận với một họ vi điều khiển 32 bit mới: người nghiên cứu tiến hành thực hiện đề tài : Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex M3 1.3 Mục Tiêu Nghiên cứu Xây dựng các bài thí nghiệm mẫu trên KIT OPENCMX – STM3210D sử dụng vi điều khiển ARM Cortex. .. thiết kế các phần mềm phức tạp và hỗ trợ các hệ điều hành thời gian thực Lõi Cortex có hỗ trợ một timer 24-bit tự động nạp lại giá trị, nó sẽ cung cấp một ngắt Trang 9 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex timer đều đặn cho một nhận RTOS (Real Time Operating System) Các chip ARM7 vả ARM9 có hai tập lệnh (tập lệnh ARM 32-bit và tập lệnh Thumb 16-bit), trong khi đó dòng Cortex được... Trang 2 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex Chương 2 VI ĐIỀU KHIỂN ARM CORTEX M3 2.1 Giới Thiệu Về Vi Điều Khiển ARM Cortex – M3 Cấu trúc ARM (Acorn RISC Machine) là một loại cấu trúc vi xử lý 32-bit kiểu RISC (Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) được sử dụng rộng rãi trong các thiết kế nhúng Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM. .. ARM, Thumb và Thumb-2 Trang 10 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex Cortex- R, bộ xử lí dành cho các hệ thống đòi hỏi khắc khe về tính thời gian thực Hỗ trợ các tập lệnh ARM, Thumb, và Thumb-2 Cortex- M, bộ xử lí dành cho dòng vi điều khiển, được tối ưu hóa cho các ứng dụng nhạy cảm về chi phí Chỉ hỗ trợ tập lệnh Thumb-2 Con số nằm cuối tên Cortex cho biết mức độ hiệu suất tương... phép truy cập trực tiếp đến từng bit dữ liệu trong các hệ thống đơn giản bằng cách thực thi một kỹ thuật được gọi là bit-banding Đặc điểm này cho phép truy cập hiệu quả tới các thanh ghi ngoại vi và các cờ được dùng trên bộ nhớ SRAM mà không cần một bộ xử lí luận lí (Boolean processor) Bộ nhớ bao Trang 7 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex gồm hai vùng bit-band (mỗi vùng 1MB) trong... nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới CPU ARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay như: PDA, điện thoại Trang 3 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex 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, cho đến các thiết bị ngoại... lí ARM trước đó, nó là một lõi xử lý hoàn chỉnh, bao gồm bộ xử lí trung tâm Cortex và một hệ thống các thiết bị ngoại vi xung quanh, tạo thành “trái tim” của một hệ thống nhúng Bộ xử lý Cortex gồm có 3 nhánh, được biểu hiện bằng các ký tự sau tên Cortex như sau: Cortex- A, bộ vi xử lý dành cho hệ điều hành và các ứng dụng của người dùng phức tạp Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2 Trang 10 Xây. .. tốn ít năng lượng, bộ nhớ lớn và đặc biệt một số chip được thiết kế để Trang 1 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex phù hợp với các ứng dụng nhùng ARM Cortex M3 là một vi điều khiển 32 bit thuộc dòng này đang được sử dụng dần rộng rãi nhờ hiệu quả cao với giá thành phù hợp Tại Việt nam, vi điều khiển ARM Cortex M3 vẫn còn sử dụng rất hạn chế, sách hướng dẫn và tài liệu nghiên cứu... chương trình và một số thanh ghi đặc biệt trong đó có một thanh ghi trạng thái chương trình Trang 5 Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex Hình 2.2 Cấu trúc của VĐK Cortex- M3 Bộ vi xử lý Cortex- M3 là một hệ thống ánh xạ bộ nhớ đơn giản, quản lí vùng nhớ cố định lên tới 4-gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị