Thiết kế cài đặt một web server đơn giản trên một board vi xử lý (microcontroller)

102 235 1
Thiết kế cài đặt một web server đơn giản trên một board vi xử lý (microcontroller)

Đ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

UỶ BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ LÝ(MICROCONTROLLER) Mã số đề tài : SV2015-27 Thuộc nhóm ngành khoa học : ĐIỆN TỬ - VIỄN THÔNG Chủ nhiệm đề tài: TRẦN VĂN CHÂU Thành viên tham gia: NGUYỄN TUẤN ANH Giáo viên hướng dẫn :ThS BÙI CÔNG GIAO Tp Hồ Chí Minh, tháng 04 năm 2016 ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ (MICROCONTROLLER) Mã số đề tài : SV2015-27 Xác nhận Khoa Giáo viên hướng dẫn (ký, họ tên) (ký, họ tên) Tp Hồ Chí Minh, tháng năm 2016 Chủ nhiệm đề tài (ký, họ tên) BẢNG TÓM TẮT THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ LÝ(MICROCONTROLLER) ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN Mã số : SV2015-27 Vấn đề nghiên cứu(vấn đề, tính cấp thiết) Thiết kế cài đặt Web Server đơn giản board vi xử lý(microcontroller) mạch stm32f4-Discovery 2.Mục đích nghiên cứu/mục tiêu nghiên cứu Web Server dùng để cài đặt thông số cho chương trình ứng dụng Board sau 3.Nhiệm vụ/nội dung nghiên cứu/câu hỏi nghiên cứu - Nghiên cứu mạch stm32f4-Discovery - Nghiên cứu giao thức HTTP , ngôn ngữ HTML, ngôn ngữ JavaScript , trình biên dịch Keil C , Phương pháp nghiên cứu Nghiên cứu qua sách,mạng,giáo trình giao thức ngôn ngữ lập trình,viết chương trình để hiểu cấu trúc câu lệnh nhằm phục vụ cho việc thiết kế chương trình Web Server nhúng vào mạch stm32f4-Discovery Kết nghiên cứu (ý nghĩa kết quả) sản phẩm (Bài báo khoa học, phần mềm máy tính, quy trình công nghệ, mẫu, sáng chế, …)(nếu có) Thiết lập Web Server đơn giản để cài đặt board vi xử Web server dùng để cài đặt thông số cho chương trình ứng dụng board stm32f4 : Vòng lặp kiểm soát , hệ thống ngắt điều khiển MỤC LỤC DANH MỤC BẢNG BIỂU DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT MỞ ĐẦU 1.Lý chọn đề tài 2.Nội dung bố cục đề tài 3.Kết luận CHƯƠNG I : NGHIÊN CỨU MẠCH PHÁT TRIỂN STM32F4-DISCOVERY 1)Lịch sử phát triển kit stm32f4 2)Đặc điểm 3)Tính kit stm32f4 discovery 4)Ứng dụng 11 CHƯƠNG II : NGHIÊN CỨU NGÔN NGỮ HTML 14 1)Định nghĩa 14 2)Cấu trúc 15 3)Các thẻ HTML 15 4)Các phần tử HTML 18 5)Ưu điểm,nhược điểm HTML 19 6) Ứng dụng 20 CHƯƠNG III : NGHIÊN CỨU JAVASCRIPT 21 1)Định nghĩa 21 2)Vị trí Javascript HTML 21 3)Các lệnh Javascript 22 4)Các đối tượng Javascript 26 5)Các công cụ phát triển Javascript 27 6)Ưu điểm,nhược điểm việc sử dụng Javascript 28 7)Ứng dụng Javascript 29 CHƯƠNG IV : NGHIÊN CỨU CƠ CHẾ LẬP TRÌNH WEB TRONG BỘ CÔNG CỤ KEIL C 30 1)Khái niệm 30 2)Các toán tử keil C 30 3)Cấu trúc lệnh keil C 31 4)Cấu trúc trình biên dịch cho vi điều khiển 34 CHƯƠNG V : NGHIÊN CỨU CÔNG CỤ LẬP TRÌNH KEIL C 38 1)Khái niệm 38 2)Các biến keil C 38 3)Cách khai báo sử dụng 38 4)Các hàm sử dụng Keil C 39 CHƯƠNG VI : NGHIÊN CỨU GIAO THỨC HTTP 41 1)Định nghĩa 41 2)Mô hình HTTP 42 3)Các đặc trưng 44 4)Cấu trúc 44 5)Ưu điểm,nhược điểm HTTP 46 6)Ứng dụng 47 CHƯƠNG VII : VIẾT CHƯƠNG TRÌNH WEB SERVER NHÚNG TRONG MẠCH PHÁT TRIỂN STM32F4-DISCOVERY 48 CHƯƠNG VIII : KẾT LUẬN-KIẾN NGHỊ 91 1) Kết luận 91 2) Kiến nghị 91 DANH MỤC BẢNG BIỂU Bảng : Các chân giao tiếp thiết bị mạch STM32F4-DISCOVERY Bảng : Các thẻ dùng HTML 18 Bảng : Các ký tự đại diện lệnh file script 26 Bảng : Các toán tử sử dụng Keil C 30 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Từ viết tắt Cụm từ đầy đủ API Application Programming Interface BTS Base Transceiver Station CLR Common Language Runtime CGI Common Graphics Interface DSL Digital Subcriber Line FCL Framework Class Library HTTP Hypertext Transfer Protocol GPRS General Packet Radio Service HTML Hypertext Mark-up Language JS JavaScript IPTV Internet Protocol TV JIT Just-In-Time JVM Java Virtual Machine LAN Local Area Network HTML5 Hypertext Mark-up Language version MSIL Microsoft Intermediate Language NMS Network Management Station PSTN Public Switch Telephone Network RTOS RealTime Operating Systems URI Uniform Resource Identifier TCP/IP Transmission Control Protocol / Internet Protocol Từ viết tắt Cụm từ đầy đủ ADSL Asymmetric Digital Subscriber Line SSL Secure Socket Layer TLS Transport Layer Security RAM Random Access Memory ROM Read Only Memory GPRS General Packet Radio Service THÔNG TIN KẾT QUẢ NGHIÊN CỨU Đề tài : “THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ LÝ(MICROCONTROLLER)” Mã số : SV2015-27 Qua thời gian nghiên cứu với nỗ lực cố gắng thân hướng dẫn nhiệt tình, tận tâm Thầy Bùi Công Giao, báo cáo đề tài hoàn thành thời gian định đạt yêu cầu đặt thiết kế Web server đơn giản board vi xử stm32f4 Từ trình thực đề tài, chúng em thu kết định dùng Web Server để setup thông số cho chương trình ứng dụng board : - Các hệ thống ngừng để sửa chữa cách an toàn, dụ hệ thống không gian, hệ thống dây cáp đáy biển, đèn hiệu dẫn đường, - Các hệ thống phải chạy liên tục tính an toàn, dụ thiết bị dẫn đường máy bay, thiết bị kiểm soát độ an toàn nhà máy hóa chất, - Các hệ thống ngừng hoạt động gây tổn thất nhiều tiền dụ dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát nhà máy - Hệ thống điều khiển thiết bị điện từ xa , người dùng dùng máy tính đăng nhập vào Webserver thực thi điều khiển thiết bị giao điện Web - Các hệ thống có tính cảnh báo nhiệt độ cao : + Khối cảm biến đo nhiệt độ DS18B20 kết nối tới vi điều khiển cho biết nhiệt độ phòng + Có chức báo động gửi tín nhăn tới người dùng nhiệt độ tăng cao giới hạn cho phép Chúng em hy vọng với kết nêu với ý tưởng, góp ý khác thầy cô giáo , bạn đọc phát triển đề tài , khắc phục hạn chế , tồn đề tài , làm cho đề tài trở nên phong phú , mang tính ứng dụng cao vào thực tế sống , phục vụ cho lợi ích người tương lai MỞ ĐẦU / chọn đề tài : Trong giai đoạn Việt Nam hội nhập vào ASEAN , tất lĩnh vực văn hóa , xã hội , thông tin liên lạc , sản xuất cần cải tiến thật tốt để sánh ngang với nước bạn ,nên đòi hỏicác hệ thống dùng để vận hành kinh tế phải đem lại cho nhà sản xuất ngày tối đa hóa lợi nhuận , tối thiểu hóa chi phí , tạo nên tiện ích lớn cho người sử dụng , có web server nhúng thiết kế để thực số nhiệm vụ chuyên dụng đóng vai trò hệ thống máy tính đa chức Chúng ta biết đến web server máy tính server lớn, tương đối quen thuộc kỷ nguyên web Tuy nhiên,việc thực web server hệ thống nhúng phát triển gần Bởi việc thực server vốn cài đặt máy tính trước lên hệ thống nhúng không đơn giản, hệ thống vi điều khiển Cùng với phát triển hệ thống nhúng, vi xử Các ứng dụng internet tích hợp vào hệ thống nhúng, hay hệ vi xử Và webserver nhúng điển hình hay gặp router kết nối ADSL gần có mặt nhà Đó thiết bị bé bàn tay (hoặc nhỏ hơn) có khả kết nối với internet đưa tất thứ muốn lên mạng internet, từ cho phép kiểm soát, điều khiển , đo đạc, quản từ đâu, từ thiết bị nào, miễn có kết nối internet, mở cho khái niệm điều khiển, quản kể sống, Quay trở lại với web server nhúng, thiết bị dựa hệ thống nhúng, hay hệ vi xử mà giao tiếp với internet cấp độ vật (kết nối với đường dây mạng hay wifi hay GPRS hay 3G ) đồng thời phải hỗ trợ giao thức mạng (internet protocol hay TCP/IP Protocol) cho phép truy cập web, gởi mail, Sự phát triển mạnh mẽ mạng toàn cầu mang đến cho nhà thiết kế hệ nhúng lựa chọn sử dụng giao diện web thông qua việc kết nối mạng Điều Thiết kế Web Server Page NVIC_SystemReset(); } } Wait(10); } } /* Task khoi tao cac task khac cua he thong * -*/ task void Init_Task(void) { //os_mbx_init (&mailbox1, sizeof(mailbox1)); //os_mbx_init(&TxQueue, sizeof(TxQueue)); // Tao task chinh cho TCPnet stack os_mbx_init(&TxQueue, sizeof(TxQueue)); os_mbx_init(&RxQueue, sizeof(RxQueue)); _init_box(TxPool, sizeof(TxPool), sizeof(PACKETTOSEND)); _init_box(RxPool, sizeof(RxPool), sizeof(PACKET)); TCPNet_ID = os_tsk_create_user(TCPNet_Task, TCPNet_Priority, &TCPNet_Stack, sizeof(TCPNet_Stack)); TimerNet_ID = os_tsk_create_user(TimerNet_Task, TimerNet_Priority, &TimerNet_Stack, sizeof(TimerNet_Stack)); DSNet_ID = os_tsk_create_user(DSNet_Task, Ds_Priority, &DSNet_Stack, sizeof(DSNet_Stack)); RESET_ID = os_tsk_create_user(RESET_Task, RESET_Priority, &RESET_Stack, sizeof(RESET_Stack)); ETHERNET_ID = os_tsk_create_user(Ethernet_Task, ETHERNET_Priority, ÐERNET_Stack, sizeof(ETHERNET_Stack)); //tsk1 = os_tsk_create_user(task1, TCPNet_Priority, &TCPNet_Stack, sizeof(TCPNet_Stack)); ON_OFF_ID = os_tsk_create_user(ON_OFF_Task, ON_OFF_Priority, &ON_OFF_Stack, sizeof(ON_OFF_Stack)); // Ket thuc task os_tsk_delete_self(); } /***************************************************************************** *************************** Khoi tao thong so mang Return: None ***************************************************************************** **************************/ void InitNetworkInfo(void) { memset(m_pNetCfg, 0L, sizeof(NetworkInfo)); // Dia chi MAC cua thiet bi m_pNetCfg->MAC_Addr[0] = 0x00; m_pNetCfg->MAC_Addr[1] = 0x04; Thiết kế Web Server Page 79 m_pNetCfg->MAC_Addr[2] = 0xA3; m_pNetCfg->MAC_Addr[3] = 0x01; m_pNetCfg->MAC_Addr[4] = 0x00; m_pNetCfg->MAC_Addr[5] = 0x39; // Da dung tu 0x31 -> 0x47 // Dia chi IP cua thiet bi m_pNetCfg->IP_Addr[0] = 192; m_pNetCfg->IP_Addr[1] = 168; m_pNetCfg->IP_Addr[2] = 1; m_pNetCfg->IP_Addr[3] = 9; //m_pNetCfg->IP_Addr[3] = 11; //m_pNetCfg->IP_Addr[3] = 8; // Dai // Pha // Cong // Netmask cua thiet bi m_pNetCfg->IP_Netmask[0] = 255; m_pNetCfg->IP_Netmask[1] = 255; m_pNetCfg->IP_Netmask[2] = 255; m_pNetCfg->IP_Netmask[3] = 0; // Gateway cua thiet bi m_pNetCfg->IP_Gateway[0] = 192; m_pNetCfg->IP_Gateway[1] = 168; m_pNetCfg->IP_Gateway[2] = 1; m_pNetCfg->IP_Gateway[3] = 2; // DNS1 m_pNetCfg->IP_Dns1[0] = 8; m_pNetCfg->IP_Dns1[1] = 8; m_pNetCfg->IP_Dns1[2] = 8; m_pNetCfg->IP_Dns1[3] = 8; // DNS2 m_pNetCfg->IP_Dns2[0] = 8; m_pNetCfg->IP_Dns2[1] = 8; m_pNetCfg->IP_Dns2[2] = 8; m_pNetCfg->IP_Dns2[3] = 8; m_pNetCfg->SERVERIP_Addr[0] = 192; m_pNetCfg->SERVERIP_Addr[1] = 168; m_pNetCfg->SERVERIP_Addr[2] = 1; m_pNetCfg->SERVERIP_Addr[3] = 100; m_pNetCfg->port=5890; m_pNetCfg->StationID = 1; strcpy(m_pNetCfg->Username,"Admin"); strcpy(m_pNetCfg->Password, "230710"); m_pNetCfg->lat[0]=0; m_pNetCfg->lng[0]=0; } Thiết kế Web Server Page 80 /***************************************************************************** *************************** Load thong so mang Return 1: Thanh cong 0: Loi ***************************************************************************** **************************/ int LoadNetworkInfo(void) { int i, size; char *pByte, crc, allBytesFF; uint32_t address; if(m_pNetCfg == (NetworkInfo*)0) return 0; // Unlock the Flash Enable the flash control register access FLASH_Unlock(); // Set WS because HCLK = 168 Mhz FLASH_SetLatency(FLASH_Latency_6); // Lay kich thuoc mang thong so mang size = sizeof(NetworkInfo); // Khoi tao tro chi den byte dau tien cua thong so mang pByte = (char*)m_pNetCfg; // Khoi tao dia chi bat dau tren Flash de doc du lieu address = NETWORK_INFO_START_ADDRESS; allBytesFF = 1; for(i = 0; i < size; i++) { // Doc mot byte tu Flash *pByte = *( IO uint8_t*)address; if(*pByte != (char)0xFF) allBytesFF = 0; pByte++; address++; } // Lock the Flash to disable the flash control register access (recommended // to protect the FLASH memory against possible unwanted operation) FLASH_Lock(); if(allBytesFF == 1) { // Du lieu chua duoc khoi tao InitNetworkInfo(); return SaveNetworkInfo(); } Thiết kế Web Server Page 81 // Tinh toan gia tri checksum hien tai crc = ChecksumNetworkInfo(); if(crc != m_pNetCfg->CheckSum) { // Du lieu da bi hong InitNetworkInfo(); return SaveNetworkInfo(); } return 1; } /***************************************************************************** *************************** Luu thong so mang Return 1: Thanh cong 0: Loi ***************************************************************************** **************************/ int SaveNetworkInfo(void) { int i, size; char *pByte, crc; uint32_t address; if(m_pNetCfg == (NetworkInfo*)0) return 0; // Tinh toan gia tri checksum moi crc = ChecksumNetworkInfo(); m_pNetCfg->CheckSum = crc; // Unlock the Flash Enable the flash control register access FLASH_Unlock(); // Clear pending flags (if any) FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR); if(FLASH_EraseSector(FLASH_Sector_3, VoltageRange_3) != FLASH_COMPLETE) return 0; // Lay kich thuoc mang thong so mang size = sizeof(NetworkInfo); // Khoi tao tro chi den byte dau tien cua thong so mang pByte = (char*)m_pNetCfg; // Khoi tao dia chi bat dau tren Flash de ghi du lieu address = NETWORK_INFO_START_ADDRESS; Thiết kế Web Server Page 82 for(i = 0; i < size; i++) { if(FLASH_ProgramByte(address++, *pByte++) != FLASH_COMPLETE) return 0; } // Lock the Flash to disable the flash control register access (recommended // to protect the FLASH memory against possible unwanted operation) FLASH_Lock(); return 1; } /***************************************************************************** *************************** Tinh toan checksum cau truc thong so mang Return: Gia tri checksum cua thong so mang ***************************************************************************** **************************/ char ChecksumNetworkInfo(void) { int i, size; char *pByte, crc; if(m_pNetCfg == (NetworkInfo*)0) return 0; // Lay kich thuoc mang thong so mang size = sizeof(NetworkInfo); // Khoi tao tro chi den byte dau tien cua thong so mang pByte = (char*)m_pNetCfg; // Bo qua ban than byte checksum pByte++; // Bat dau tinh crc crc = 0; for(i = 1; i < size; i++) { crc ^= *pByte++; } return ~crc; } /***************************************************************************** *************************** Xoa co yeu cau cap nhat firmware Ham duoc copy tu file MyMisc.c Return 1: Thanh cong 0: Loi Thiết kế Web Server Page 83 ***************************************************************************** **************************/ /***************************************************************************** *************************** Bat co yeu cau cap nhat firmware Return 1: Thanh cong 0: Loi ***************************************************************************** **************************/ /***************************************************************************** *************************** Kiem tra co cap nhat firmware Ham duoc copy tu file MyMisc.c Return 1: Yeu cau cap nhat firmware da duoc set 0: Khong co yeu cau cap nhat firmware ***************************************************************************** **************************/ int SetFirmwareUpdateFlag(void) { return 0; } /***************************************************************************** *************************** Reset he thong Return: None ***************************************************************************** **************************/ void ResetSystem(void) { NVIC_SystemReset(); } /***************************************************************************** *************************** Ham ghi mang word vao Flash Return 1: Thanh cong 0: Loi ***************************************************************************** **************************/ unsigned int FLASH_ProgramWordArray( IO unsigned int* address, unsigned int* dat, unsigned int len) Thiết kế Web Server Page 84 { unsigned int i, result; for(i = 0; i < len; i++) { result = FLASH_ProgramWord(*address, *(unsigned int*)(dat+i)); if(result == FLASH_COMPLETE) { // Check the written value if (*(unsigned int*)*address != *(unsigned int*)(dat+i)) { return 0; } else { // Tang dia chi den word ke tiep *address += 4; } } else { return 0; } } return 1; } void InitHardware(void) { GPIO_InitTypeDef GPIOE_InitStruct; GPIO_InitTypeDef GPIOC_InitStruct; // Cho phep clock GPIOA, GPIOB, GPIOC, GPIOD, GPIOE clocks //RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOAEN |RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOEEN); // Cho phep clock GPIOA, GPIOB, GPIOC, GPIOD, GPIOE clocks RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOAEN |RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOEEN); // Cau hinh PE3 la chan dau (dung ham cua thu vien STM32F4 Library) GPIOE_InitStruct.GPIO_Pin = GPIO_Pin_3; GPIOE_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIOE_InitStruct.GPIO_Speed = GPIO_High_Speed; GPIO_Init(GPIOE, &GPIOE_InitStruct); // Cau hinh PC6 la chan dau (dung ham cua thu vien STM32F4 Library) GPIOC_InitStruct.GPIO_Pin = GPIO_Pin_6; Thiết kế Web Server Page 85 GPIOC_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIOC_InitStruct.GPIO_Speed = GPIO_High_Speed; GPIO_Init(GPIOC, &GPIOC_InitStruct); gpioInit.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; gpioInit.GPIO_Mode=GPIO_Mode_OUT; gpioInit.GPIO_Speed=GPIO_Speed_100MHz; gpioInit.GPIO_OType=GPIO_OType_PP; gpioInit.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(GPIOD, &gpioInit); //tiep tuc khoi tao cho cong tac noi voi chan PA0 //RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); gpioInit.GPIO_Pin=GPIO_Pin_0; gpioInit.GPIO_Mode=GPIO_Mode_IN; gpioInit.GPIO_Speed=GPIO_Speed_100MHz ; gpioInit.GPIO_OType=GPIO_OType_PP; gpioInit.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &gpioInit); gpioInit.GPIO_Pin=GPIO_Pin_15; gpioInit.GPIO_Mode=GPIO_Mode_OUT; gpioInit.GPIO_Speed=GPIO_Speed_100MHz ; gpioInit.GPIO_OType=GPIO_OType_PP; gpioInit.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &gpioInit); //tiep tuc khoi tao cho cong tac noi voi chan PB8 //RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); gpioInit.GPIO_Pin=GPIO_Pin_8; gpioInit.GPIO_Mode=GPIO_Mode_OUT; //gpioInit.GPIO_Mode=GPIO_Mode_AF; gpioInit.GPIO_Speed=GPIO_Speed_100MHz ; gpioInit.GPIO_OType=GPIO_OType_PP; gpioInit.GPIO_PuPd=GPIO_PuPd_NOPULL; //khoi tao GPIOB GPIO_Init(GPIOB, &gpioInit); gpioInit.GPIO_Pin=GPIO_Pin_7; gpioInit.GPIO_Mode=GPIO_Mode_OUT; gpioInit.GPIO_Speed=GPIO_Speed_100MHz ; gpioInit.GPIO_OType=GPIO_OType_PP; gpioInit.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(GPIOB, &gpioInit); InitTimer11(); InitTimer10(); } Thiết kế Web Server Page 86 os_mbx_declare (MsgBox, 16); U8 mpool[16*(2*sizeof(U8)) + 3]; int main(void) { // U8 *rptr, rec_val[2]; // U8 *mptr; // void *msg; // U8 chuoi[5]="abc"; // U8 *MSG; // U8 *p; InitHardware(); // Lay thong so mang LoadNetworkInfo(); Init_NetParam(); // // // // // // // // // // Lay co xem co yeu cau cap nhat firmware hay khong _init_box (mpool, sizeof(mpool), sizeof(U8)); os_mbx_init (MsgBox, sizeof(MsgBox)); mptr = _alloc_box (mpool); /* Allocate a memory for the message */ mptr[0] = 0xdc; /* Set the message content */ mptr[1] = 0x15; if(os_mbx_send (MsgBox, mptr, 0xffff)==OS_R_TMO) { mptr[1] = 0x00000016; } //os_mbx_wait (MsgBox,(void **) &rptr, 0xffff); /* Wait for the message to arrive */ // rec_val[0] = rptr[0]; /* Store the content to 'rec_val' */ // rec_val[1] = rptr[1]; // _free_box (mpool, rptr); //tsk1 = os_tsk_create (task1, 20); // Khoi tao RTX os_sys_init(Init_Task); //Nhat thu //Init_NetParam(); //main_NhatTCP(); } #ifndef HTTP_IAP H #define HTTP_IAP H Thiết kế Web Server Page 87 #include "stm32f4xx_flash.h" // Khoi tao thong so mang void InitNetworkInfo(void); // Load thong so mang int LoadNetworkInfo(void); // Luu thong so mang int SaveNetworkInfo(void); // Tinh toan checksum cau truc thong so mang char ChecksumNetworkInfo(void); // Xoa co yeu cau cap nhat firmware //int ClearFirmwareUpdateFlag(void); // Bat co yeu cau cap nhat firmware int SetFirmwareUpdateFlag(void); // Kiem tra co cap nhat firmware //int GetFirmwareUpdateFlag(void); // Reset he thong void ResetSystem(void); // Ham ghi mang word vao Flash unsigned int FLASH_ProgramWordArray( IO unsigned int* address, unsigned int* dat, unsigned int len); #endif // HTTP_IAP H t t t NGHIEN CUU KHOA HOC t t t t t t t

t t KHOA DIEN TU VIEN THONG t t

t t DE TAI NGHIEN CUU KHOA HOC t

t t DE TAI: THIET KE VA CAI DAT MOT WEB SERVER DON GIAN t t GV HUONG DAN: Th.S BUI CONG GIAO Thiết kế Web Server Page 88 t t SV THUC HIEN: TRAN VAN CHAU & NGUYEN TUAN ANH t

t t TRINH DO: t DAI HOC t CAO DANG t TRUNG CAP t t SV NAM: t NHAT t HAI t BA t TU t t LOP: t t DDT1131 t DKD1131 t DDD1131 t t t DO TUOI: t 18-20 t 21-22 t 23-24 t DE TAI NGHIEN CUU KHOA HOC CAI DAT MOT WEB SERVER t t TRUONG DAI HOC SAI GON -KHOA DIEN TU VIEN THONG t t

VUI LONG DANG NHAP VAO HE THONG t t t c s1Authentication%s t Password for user 'Admin' Thiết kế Web Server Page 89 c s2 t Retype your password c s3 t t t t t t t t t t c f1%s t t t t Home t t t t t c i1ID c i2Port c i3Server IP Address c i4Local IP Address c i5Subnet mask c i6Default gateway c i7DNS Server #c i8Latitude #c i9Longitude t t t t Thiết kế Web Server Page 90 CHƯƠNG VIII : KẾT LUẬN – KIẾN NGHỊ : / Kết luận : nguyên tắc hệ thống tự động hóa ứng dụng quản lí dựa nên tảng kết nối máy với Sự thật hiển nhiên nhiều thiếu sót đặt biệt với hệ thống thời gian thực chi phí sản xuất cao so với tình hình thực tiễn Thiếu sót khắc phục cách sử dụng ứng dụng web server nhúng , việc truy cập vào hệ thống nhúng thông qua Web server * Kết đạt : - Thiết lập Web Server đơn giản để cài đặt board vi xử stm32f4Discovery - Web Server dùng để cài đặt thông số cho chương trình ứng dụng board như: + Hệ thống ngắt điều khiển + Lập trình nhạc MP3 + Hệ thống kiểm soát + Hỗ trợ báo cáo thông tin thẻ + Báo cáo cảnh báo kiện + Báo cáo chi tiết thông tin hệ thống + / Kiến nghị - Hướng phát triển : Thế giới đại ngày với phát triển mạnh mẽ khoa học công nghệ giúp người đạt thành tựu lớn lao ứng dụng khoa học kỹ thuật cao vào sống Một lĩnh vực đầu thiết kế vi xử lý, cần đầu tư nghiên cứu thiết kế kiến trúc phần mềm thành thạo giao thức ngôn ngữ lập trình mạng để thiết lập nên Web Server với tính đột phá sử dụng vào mục Thiết kế Web Server Page 91 tiêu phát triển khoa học - kỹ thuật mạng máy tính để ngành Điện tử -Viễn thông ngày tiến nhanh tiến mạnh Thiết kế Web Server Page 92 TÀI LIỆU THAM KHẢO 1) Vũ Đức Cung , Bài giảng thiết kế Web (2007) Khoa Công Nghệ Thông tin 2) Trần Đình Luận , Lập trình Web server (2006) Khoa học Kỹ thuật máy tính 3)Trần Đình Quế, Ngôn ngữ lập trình C cho Keil C (2006) Học viện công nghệ bưu viễn thông Hà Nội 4)Nguyễn Hoài Sơn , Tổng quan giao thức HTTP (2007) Khoa Công nghệ thông tin 5)Nguyễn Trường Sinh , Học nhanh Javascript (2006) Nhà xuất Lao Động Xã Hội 6) Đỗ Hiệp Thuận Bài giảng ngôn ngữ HTML (2008) Đại học Cần Thơ 7)Nguyễn Minh Tuấn, Lập trình hướng đối tượng với Javascript (2006) Đại học Khoa học Tự Nhiên Thiết kế Web Server Page 93 ... TẮT THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ L (MICROCONTROLLER) ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VI N Mã số : SV2015-27 Vấn đề nghiên cứu(vấn đề, tính cấp thiết) Thiết kế cài. .. BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VI N THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ LÝ (MICROCONTROLLER) Mã số đề tài : SV2015-27 Xác nhận Khoa Giáo vi n hướng dẫn... Only Memory GPRS General Packet Radio Service THÔNG TIN KẾT QUẢ NGHIÊN CỨU Đề tài : “THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN TRÊN MỘT BOARD VI XỬ L (MICROCONTROLLER) Mã số : SV2015-27 Qua thời

Ngày đăng: 20/09/2017, 11:34

Từ khóa liên quan

Mục lục

  • Hệ thống ngắt điều khiển :

  • Đa nhiệm tương tác

  • 4 / Ứng dụng :

  • Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như : KIT STM32F4 DISCOVERY  Vòng lặp kiểm soát đơn giản

  • Theo thiết kế này, phần mềm được tổ chức thành một vòng lặp đơn giản. Vòng lặp gọi đến các chương trình con, mỗi chương trình con quản lý một phần của hệ thống phần cứng hoặc phần mềm.

  • KIT STM32F4 DISCOVERY Hệ thống ngắt điều khiển

  • Các hệ thống nhúng thường được điểu khiển bằng các ngắt. Có nghĩa là các tác vụ của hệ thống nhúng được kích hoạt bởi các loại sự kiện khác nhau.

  • Thẻ và phần tử HTML

  • Các phần tử HTML được l ồng vào nhau

  • b/ Nhược điểm :

  • 1 )Khái niệm :

  • Keil C là chương trình soạn thảo sử dụng ngôn ngữ chính là C để viết chương trình cho vi điều khiển .

  • Trình biên dịch là phần mềm mà trên đó sẽ được viết các chương trình web server để nạp xuống cho VĐK trên word , exel . . .mà mỗi loại VĐK khác nhau là phải dùng một phần mềm chuyên dụng riêng để viết chương trình cho nó . Đối với dòng vi đều khiển stm32f4 ta sẽ dùng trình biên dịch KeilC .

  • 2 ) Các biến trong keil C:

  • 2 / Mô hình HTTP :

  • Giao thức HTTP là một giao thức có dạng yêu cầu/đáp ứng. Khi một máy khách gửi một yêu cầu đến máy chủ gồm phương thức yêu cầu (gồm GET, POST, HEAD,…), URI, phiên bản giao thức, kèm với thông điệp kiểu MIME gồm các tham số chỉnh sửa của yêu cầu, thông tin máy khách và nội dung chính thông qua kết nối đến máy chủ. Máy chủ sẽ đáp ứng bằng dòng trạng thái, gồm phiên bản giao thức thông điệp và mã thông báo thành công hay lỗi, kèm với thông điệp kiểu MIME có chứa thông tin về máy chủ, các thông tin thêm về đối tượng và nội dung chính của đối tượng.

  • 3 /Các đặc trưng cơ bản :

  • 4 / Cấu trúc cơ bản

    • Client

    • Server

    • HTTP được ứng dụng trong các phần mềm máy chủ Web và trong các trình duyệt Web để trao đổi thông tin giữa máy chủ Web và máy khách Web trên môi trường mạng.

      • Code :

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan