Triển khai hệ thống nhúng trên friendly arm và ứng dụng điều khiển thiết bị
Trang 1VÀ ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2014
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN FRIENDLY ARM VÀ ỨNG
DỤNG ĐIỀU KHIỂN THIẾT BỊ
NGÀNH: CÔNG NGHỆ THÔNG TINCHUYÊN NGÀNH: CÔNG NGHỆ MÁY TÍNH
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGƯỜI HƯỚNG DẪN ThS PHẠM NGỌC HƯNG
2014
Trang 3MỤC LỤC
Trang 4DANH SÁCH HÌNH VẼ
Trang 5DANH SÁCH BẢNG BIỂU
Trang 6DANH SÁCH TỪ VIẾT TẮT
PC Personal Computer Máy tính cá nhân, máy tính điện
tửARM Advanced RISC Machine Một loại cấu trúc vi xử lý 32-bit
kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng
GPIO General-purpose input/output Cổng giao tiếp vi xử lý với thế
giới bên ngoàiUDP User Datagram Protocol Giao thức của mạng máy tính
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Bắt đầu từ thế kỉ XX, nhân loại đã chứng kiến cuộc cách mạng khoa học kĩ thuật phát triền trên toàn thế giới Đặc trưng và nổi bật của cuộc cách mạng này là
kĩ thuật máy tính, công nghệ thông tin và ứng dụng của tự động hóa Trong đó, việc
sử dụng thành tựu của khoa học công nghệ thông tin vào thiết kế, chế tạo tự động hóa đóng một vai trò quan trọng trong mọi lĩnh vực của cuộc sống
Trong những năm gần đây, xu hướng của thế giới là phát triển mạnh công nghệ bán dẫn Một cấu trúc vi xử lý có thể tích hợp trên nó nhiều cổng logic có thể ứng dụng trong nhiều lĩnh vực Ngày nay, ngành công nghiệp chế tạo phần cứng luôn có những đột phá không ngừng Từ các mạch điện đơn giản đến các mạch số, mạch tích hợp,kiến trúc mạch ngày một trở nên phức tạp hơn
Các hệ thống nhúng được phát triển trên ARM đang được sử dụng rộng rãi cho các nghiên cứu, ứng dụng, và đào tạo hiện nay bởi đặc tính linh hoạt cho các thiết
kế thiết bị trên ARM Mặt khác,ARM được hỗ trợ rất nhiều các thiết bị ngoại vi tạo điều kiện thuận lợi cho việc phát triển hệ thống nhúng, phát triển các ứng dụng điều khiển trên ARM kết nối với các thiết bị ngoại vi
Để có được bước đầu làm quen và nghiên cứu về công nghệ ARM từ đó có thể
nghiên cứu sâu hơn về công nghệ nên Em đã chọn đề tài nghiên cứu: “ Triển khai
hệ thống nhúng trên FriendlyArm và điều khiển thiết bị qua máy tính” làm đề
tài tốt nghiệp Đại học của mình
1.2 Mục tiêu của đề tài
• Làm chủ hệ điều hành Linux trên KIT FriendlyArm Mini 2440
• Ứng dụng công nghệ trên KIT FriendlyArm Mini 2440 để điều khiển thông minh
Trang 8• Lập trình giao tiếp giữa KIT FriendlyArm Mini 2440 và máy tính qua cổng Ethernet
• Lập trình ứng dụng nhúng điều khiển thiết bị trên Friendly Arm
• Ứng dụng bộ công cụ mã nguồn mở Qt Everywhere Linux
• Ghép nối hệ nhúng PC – FriendlyArm – Module Rơ-le điều khiển thiết bị
1.3 Giới hạn và phạm vi của đề tài
- Tìm hiểu về lập trình nhúng trên hệ điều hành mã nguồn mở Linux
- Tìm hiểu về lập trình giao tiếp KIT Friendly ARM Mini 2440 với PC
- Lập trình ứng dụng điều khiển trên KIT Friendly ARM Mini 2440
1.4 Nội dung thực hiện
- Build nhân hệ điều hành Linux trên KIT Friendly Arm Mini 2440
- Lập trình giao tiếp giữa KIT Friendly Arm Mini 2440 và PC qua Ethernet
- Xây dựng module dơ-le điều khiển thiết bị
- Lập trình ứng dụng nhúng điều khiển thiết bị trên Friendly Arm Mini 2440
- Ghép nối PC với KIT Friendly Arm Mini 2440 module Rơ-le điều khiển thiết bị
- Triển khai thử nghiệm và đánh giá kết quả
1.5 Phương pháp tiếp cận
- Cách tiếp cận : Nghiên cứu các kĩ thuật lập trình trên các nền tảng công nghệ khác nhau như : ARM, PC,
- Sử dụng các phương pháp nghiên cứu:
- Phương pháp đọc tài liệu
- Phương pháp phân tích mẫu
- Phương pháp thực nghiệm
Trang 9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này sẽ trình bày cơ sở lý thuyết của đề tài bao gồm tổng quan về Friendly Arm, giới thiệu phần mềm, công cụ sử dụng trong đề tài, các bước triển khai hệ thống, truyền thông qua máy tính
2.1 KIT Friendly Arm Mini 2440
Hình 2: KIT Friendly Arm Mini 2440
Mô tả về KIT Friendly Arm Mini 2440:
- Kích thước: 100 x 100mm
- CPU: 400 MHz Samsung S3C2440A ARM920T (max freq 533 MHz)
- RAM: 64 MB SDRAM, 32 bit Bus
- Flash: 64 MB / 128 MB / 256 MB / 1GB NAND Flash and 2 MB NOR Flash with BIOS
- EEPROM: 1024 Byte (I2C)
- Bộ nhớ mở rộng: Hỗ trợ thẻ SD-Card
Trang 10- Cổng giao tiếp USB: 01 cổng chuẩn A-USB, 01 cổng chuẩn B-USB
- Ngõ ra âm thanh: 01 ngõ với chuẩn Jack Stereo 3.5mm
- Ngõ vào âm thanh: 01
- Kết nối Ethernet: 01 cổng với chuẩn dây RJ-45 10/100m (DM9000)
- Hệ thời gian thực (RTC): hỗ trợ với nguồn pin đi kèm
- Còi: 01 còi làm việc với chế độ PWM
- Camera: cổng kết nối 20 chân (2.0mm)
- Màn hình LCD: 3.5 inches hỗ trợ cảm ứng
- Nút nhấn: 06 nút nhấn
- LED: 04 led
- Cổng với rộng: 01 cổng 40 chân, 01 cổng 34 chân, 01 cổng 10 chân (2.0mm)
- Nguồn điện cung cấp: 5V (Mini2440: 0.3 A, Mini2440 + 3.5" LCD: 0.6 A)
- Hệ điều hành hỗ trợ: Linux, WinCE, Android
2.1.1 Địa chỉ bộ nhớ
Bên phía tay trái là bộ nhớ NOR
Bên phía tay phải là bộ nhớ NAND
Trang 11Hình 2: Địa chỉ bộ nhớ KIT Friendly Arm Mini 2440
Cần phải cấp nguồn điện cho KIT là 5V
Ở các chân mở rộng của KIT có cung cấp nguồn điện ra là 5V, 3.3V, 1.8V và 1.25V
Trang 12• Nor Flash: 16bit dữ liệu + 20bit Bus địa chỉ
• Nand Flash: 8bit dữ liệu / Bus địa chỉ
Bảng 2: Chi tiết LED trên KIT Friendly Arm Mini 2440
LED GPIO Hàm khác Tên trên sơ đồ nguyên lý
Trang 132.1.8 ADC
Có 4 kênh ADC trên KIT và được mở rộng ở cổng CON4
AIN0 có biến trở vi chỉnh 10k kèm theo
Hình 2:ADC trên KIT
Còi này được nối tới GPB0
Trang 14Hình 2:Còi PWM trên KIT
KIT sử dụng chip Davicom DM900 hỗ trợ kết nối Ethernet
Mỗi board đều có địa chỉ vật lý là như nhau Có thể chỉnh sửa lại bằng phần mềm BSP driver code trên Linux
Trang 15Có 2 cổng hỗ trợ kết nối USB theo chuẩn A và chuẩn B.
Đầu ra với chân bổ sung ở USB_EN (GPC5)
Trang 16Hình 2:LCD Interface
2.1.16Camera
KIT Friendly Arm Mini 2440 xây dựng giao tiếp Camera Cmos, kết nối tại CON20
Kết nối này dạng 20 chân (2.0mm)
2.1.17Ngõ vào ra âm thanh
Bộ xử lý âm thanh UDA1341 kết nối qua I2S Có một ngõ ra và hai ngõ vào
âm thanh
Ngõ ra Stereo theo chuẩn Jack cắm 3.5mm
Ngõ vào âm thanh dạng microphone và nối từ cổng CON10 – chế độ môn
Trang 172.2 Hệ điều hành mã nguồn mở Linux
Linux® đang ở thời điểm phát triển mạnh Tính đến năm 2013 thì Linux đã ra đời được 22 năm, một hệ điều hành hoàn thiện với sự hỗ trợ cho một loạt các mô hình sử dụng Nhưng thật khó khi nghĩ rằng Linux chỉ là một hệ điều hành—nó giống như một con tắc kè hoa thì đúng hơn Nhân mô đun và tính linh hoạt của nó
có thể xử lý trong nhiều mô hình sử dụng (từ siêu máy tính lớn nhất đến các thiết bị nhúng nhỏ nhất) đến mức thật khó phân loại nó vào bất cứ thứ gì khác hơn là một công nghệ khả dụng Trong thực tế, Linux là một nền tảng Nó là một công nghệ then chốt cho phép tạo ra các sản phẩm mới, mà một vài trong số các sản phẩm đó mới chỉ được giới thiệu gần đây
2.2.1 Linux là gì?
Nhìn bề ngoài, Linux là một hệ điều hành.Linux gồm có một nhân kernel (mã cốt lõi quản lý các tài nguyên phần cứng và phần mềm) và một bộ sưu tập các ứng dụng của người dùng (chẳng hạn như các thư viện, các trình quản lý cửa sổ và các ứng dụng)
Trang 18Hình 210:Linux nhìn bề ngoài
Sơ đồ trên chỉ ra các thành phần quan trọng Tầng cuối cùng chính là một tập hợp mã kiến trúc giúp Linux có thể hỗ trợ đa nền tảng phần cứng (ARM, PowerPC, Tilera TILE v.v ) Tất nhiên, chức năng này được đăng ký theo giấy phép GNU, tạo nên tính di động của Linux
Linux theo phong cách riêng của mình trong lĩnh vực về tính di động Hệ thống con của trình điều khiển (là rất lớn về khả năng của nó) hỗ trợ động các mô đun được nạp mà không ảnh hưởng đến hiệu năng, tạo nên tính mô đun (thêm vào một nền tảng động hơn) Linux cũng bảo mật ở mức nhân kernel (trong một số lược đồ) tạo nên một nền tảng bảo mật Trong miền hệ thống tệp bên ngoài, Linux tạo nên một mảng lớn nhất về hỗ trợ hệ thống tệp của bất kỳ hệ điều hành nào, như là một
ví dụ, tạo nên tính linh hoạt thông qua tính mô đun thiết kế Linux thực hiện không chỉ các tính năng lên lịch trình tiêu chuẩn mà còn lên lịch trình thời gian thực bao gồm các bảo đảm về độ trễ ngắt)
Cuối cùng, Linux là mở, có nghĩa là trên thực tế bất cứ ai cũng có thể xem và cải thiện dựa vào nguồn gốc của nó Tính mở này cũng giảm thiểu các cơ hội bị lợi
Trang 19dụng, tạo ra một nền tảng an toàn hơn Nhiều công ty đóng góp cho Linux, bảo đảm rằng nó sẽ tiếp tục giải quyết một loạt các mô hình sử dụng trong khi vẫn duy trì các đặc tính cốt lõi của mình.
Bảy nguyên tắc quan trọng này chắc chắn không phải là các thuộc tính duy nhất mà Linux cung cấp, nhưng chúng cho phép Linux dùng như một nền tảng đa năng trên rất nhiều các mô hình sử dụng Hơn nữa, Linux là như nhau trên các mô hình sử dụng này - không chỉ các nguyên tắc thiết kế mà còn bản thân mã của nó nữa Người ta không thể nói điều này về các hệ điều hành khác (như Windows®—máy tính để bàn, máy chủ, hoặc thiết bị nhúng—hoặc Mac OS X hoặc Apple iOS), chúng có phân khúc dịch vụ và mô hình sử dụng khác
2.2.2 Linux ở đâu?
Với khả năng biến đổi nhanh và mở rộng quy mô của mình, có thể tìm thấy Linux trong tất cả các phân khúc máy tính (và thậm chí một số phân khúc vẫn chưa được định nghĩa đầy đủ) Phần này xem xét một số các phân khúc điện toán quan trọng, bao gồm máy tính để bàn/netbook, máy chủ, cluster, máy tính lớn Mainframe, siêu máy tính, thiết bị cầm tay/máy tính bảng, thiết bị nhúng, ảo hóa và các máy thử nghiệm
2.2.3 Những đặc điểm nổi bật của Linux
- Độ ổn định cao
- Miễn phí
- Minh bạch và tùy biến
- Phù hợp với mọi cấu hình máy
- Nhỏ gọn với chức năng chuyên biệt
2.2.4 Hệ điều hành nhúng với Linux
a) Các thành phần cơ bản:
• BootLoader:đóng vai trò như là BIOS trong máy tính của bạn.Vì
phần cứng và tài nguyên hạn hẹp nên nó không có nguyênBIOS như PC
mà được cài sẵn trong BIOS, NAND hoặc NOR Flash Nó là chương
Trang 20trình sẽ chạy đầu tiên khi khởi động (reset).Nó có nhiệm vụ Load ảnh của nhân linux (kernel Linux Image) vào bộ nhớ và "pass" các thông số khởi tạo từ bootloader tới nhân Linux trên.
• NOR flash: giống như bộ nhớ BIOS của PC.
• NAND flash: giống như ổ cứng PC Hệ điều hành và ứng dụng được
cài lên đây.Cũng có trường hợp OS chạy từ SD card thì cũng giống như WINDOW lite hay LINUX lite chạy trực tiếp từ CD ROM mà không cần cài vào máy
• Kernel Linux Image: nhân Linux của hệ thống nhúng Nó giống như
trái tim, điiều phối toàn bộ hoạt động của hệ thống
• Root File System: giống như thư mục chứa dữ liệu của hệ thống
Window và chưa ProgramFile các chương trình, ứng dụng của hệ thống
b) Quá trình khởi tạo Kernel Linux (nhân Linux) và Root File System
Quá trình khởi động trải qua 2 bước:
- Uboot :
Được boot lần đầu tiên khi hệ thống khởi động:
+ Nạp nhân vào bộ nhớ
+ Lấy dữ liệu Root File System từ thẻ nhớ hoặc Nand Flash
+ Khởi tạo các thông số biến môi trường,bootag, boot cmd,Root File System ở Partition nào, vv Các thông số này được đưa tới nhân khi nhân được khởi động.Đồng thời nó cũng khởi tạo các ngoại vi chuẩn bị cho Kernel Boot như mmc,Ethernet,USB (optional)
- Kernel Boot:
Hạt nhân Linux sau đó chạy "/ sbin / init", để mà xử lý phần còn lại của trình
tự khởi động (chẳng hạn như hiển thị màn hình splash Screen và thanh tiến trình).Trình tự này là như nhau cho dù các thiết bị được khởi động từ Flash hay từ
Trang 21thẻ SD Sự khác biệt là hạt nhân linux được load như thế nào, và những thiết bị nào được mount chứa Root File System.
c) Những biên môi trường quan trọng
- Autoload:nếu đặt là "no" (hoặc bất kỳ chuỗi bắt đầu bằng 'n'), các lệnh
rarpb, bootp or dhcp sẽ chỉ thực hiện cấu hình tra cứu từ BOOTP / DHCP server, nhưng không cố gắng tải các image bằng cách sử dụng TFTP
- Autostart:nếu đặt là "yes", một image được load bằng cách sử dụng rarpb,
BOOTP, DHCP,tftp,disk, hoặc lệnh docb sẽ được tự động bắt đầu (bằng cách gọi nội bộ lệnh bootm)
- Baudrate: là 1 số thập phân xác định tốc độ baud của truyền thông nối tiếp
giữa uboot và dao diện command line bằng terminal của Window hay picocom trong Linux hoặc chương trình truyền nhận COM khác.Mặc định
là baudrate 115200
- Bootargs: Nội dung của biến này được truyền cho Linux Kernel như các đối
số khởi động (hay còn gọi là "Command line") Đó là 1 chuỗi những cmd uboot "bắt" Kernel cần phải làm khi khởi động
- Bootdelay: Sau khi thiết lập bao nhiêu thì uboot sẽ chờ đợi bấy nhiêu giây
trước khi nó thực hiện các nội dung của biến bootcmd Trong thời gian đếm ngược được xuất ra dao diện terminal,uboot có thể bị gián đoạn bằng cách nhấn phím bất kỳ.Khi này ta không thực hiện boot 1 cách tự động (auto) nữa
mà khởi động bằng cmd line từ các command của uboot #MINI2440 Thiết lập Bootdelay=-1 autoboot vô hiệu hóa.Bootdelay=0 là không cần delay khi boot
- Bootfile: tên của file IMAGE mặc định để tải bằng TFTP.
- Ethaddr: địa chỉ MAC Ethernet cho đầu tiên / giao diện ethernet chỉ (= eth0
trong Linux).Biến này có thể được đặt một lần (thường là do nhà sản xuất đặt ) U-Boot từ chối để xóa hay ghi đè lên biến này một lẩn khi nó đã được thiết
Trang 22- Eth1addr: địa chỉ MAC cho giao diện Ethernet thứ hai (= eth1 trong Linux).
- Eth2addr: địa chỉ MAC cho giao diện Ethernet thứ ba (= eth2 trong Linux).
- Initrd_high: được sử dụng để hạn chế vị trí của initrd ramdisk images Nếu
biến này không được thiết lập, images initrd sẽ được sao chép vào các địa chỉ cao nhất có thể trong bộ nhớ RAM, điều này bạn thường mong muốn vì nó cho phép kích thước initrd tối đa Nếu vì một số lý do bạn muốn chắc chắn rằng images initrd được nạp dưới giới hạn CFG_BOOTMAPSZ, bạn có thể thiết lập biến môi trường với giá trị "no" hoặc "off" hoặc "0" Ngoài ra cũng
có thể đặt nó vào một địa chỉ trên cùng để sử dụng (U-Boot vẫn sẽ kiểm tra xem nó không ghi đè lên U-Boot stack và dữ liệu)
- Ipaddr: địa chỉ IP cần thiết cho lệnh tftp.
- Loadaddr: địa chỉ load mặc định cho lệnh như tftp hoặc loads.
- Loads_echo: Nếu đặt là 1, tất cả các ký tự nhận được trong một Series
download (dùng lệnh loads) được lặp lại(echo lại)
- Pram:Nếu tính năng "bảo vệ RAM" được kích hoạt trong cấu hình Board
MINI2440, biến này có thể được định nghĩa để cho phép lưu trữ vào "RAM bảo vệ".Ví dụ vùng RAM mà không bị ghi đè bởi U-Boot Định nghĩa biến này để giữ số lượng kB bạn muốn dự trữ cho PRAM Lưu ý rằng thông tin cấu trúc của Board ban vẫn sẽ hiển thị tổng số dung lượng của RAM Nếu PRAM được reserved(dành riêng), một biến MT mới "mem" sẽ tự động được xác định để giữ số lượng RAM còn lại ở dạng để mà có thể truyền được như các thông số khởi động tới Linux
- Oserverip: TFTP server địa chỉ IP cần thiết cho lệnh tftp.
- Serial #: chứa thông tin nhận dạng phần cứng như kiểu: "string" , "/" hoặc
"serial number" Biến này có thể được đặt một lần (thường là do nhà sản xuất) U-Boot từ chối để xóa hay ghi đè lên biến này một Hass được thiết lập
Trang 23- Verify:Nếu thiết lập là "n" hoặc "no" vô hiệu hóa các checksum kiểm tra.
- Dnsip: địa chỉ IP của máy chủ tên miền của bạn.
- Gatewayip: địa chỉ IP của Gateway (Router) để sử dụng.
- Hostname: Target hostname.
- Netmask: Subnet Mask
- Rootpath:đường dẫn của root filesystem trên máy chủ NFS
- Filesize: kích thước tính theo byte( ở dạng số HEX) của file Download lần
cuối sử dụng bootp, dhcp, hay tftp command
2.3 Qt Creator
2.3.1 Giới thệu
Qt Creator là một IDE rất được các lập trình viên ngày nay ưa chuộng sử dụng được trên Linux và Windows Hiện nay cộng động Qt ngày càng lớn mạnh và gia tăng rất nhanh Qt hỗ trợ rất mạnh trong lập trình giao diện, tương tác với Database, Graphics… Đặc biệt Qt còn hỗ trợ lập trình thiết bị di động với nhiều nền tảng như Android, WinCE, Linux, Mac …
2.3.2 Thiết kế dự án bằng Qt Creator chạy trên KIT Friendly Arm mini2440
Giao diện Start Page (như hình dưới) cho phép:
Trang 24Hình 2-11: Giao diện Startpage của Qt Creator
- Mở Project mẫu (Choose an example)
- Xem tài liệu hướng dẫn lập trình (Tutorials)
- Mở project đã có (Open Project)
- Tạo Project mới (Create Project)
• Bước 1.Chọn Create Project để tạo một dự án mới:
Hình 2-11: Giao diện Creat Project của Qt Creator
Trang 25• Bước 2 Tại Form chính thiết kế một giao diện cơ bản như sau:
Hình 2-12: Giao diện DesignUI của QtCreator
- Kéo một TextEdit và 2 Pushbutton, một nút tên là Display, một nút tên là Clear
- Chuột phải vào nút display, chọn Go to slot ->>chọn Clicked() -> OK
- Thêm dòng lệnh sau cho sự kiện click của pushbutton display:
ui->textEdit->setText(QString("Hello World!"));
- Chuột phải vào nút Clear, chọn Go to slot … ->> chọn Clicked() … ->> OK
- Thêm dòng lệnh sau cho sự kiện click của pushbutton Clear:
ui->textEdit->setText(QString(" "));
• Bước 3 Build Project
Chú ý trong cửa sổ Build Settings, chọn cấu hình biên dịch qmake cho nền tảng Qt FriendlyArm (phiên bản tương ứng với Qt Everywhere đã cài đặt)
- Chọn Build/Build All Ứng dụng được build thành công, kết quả được file thực thi (trong thư mục Project) sẽ chuyển lên KIT để chạy Ví dụ này là file HelloQt)
• Bước 4.Nạp file thực thi lên KIT
Trang 26- Chuyển file thực thi vừa Build được xuống KIT, ví dụ file đặt tại
1.1 Truyền thông qua máy tính bằng UDP(cổng Ethernet)
Việc liên kết giữa máy tính và Friendly Arm rất quan trọng để đảm bảo sự ổn định cũng như tốc độ, truyền và xử lý ta sử dụng cổng Ethernet để truyền dữ liệu, cụ thể ta sử dụng giao thức UDP cho đơn giản và dễ sử dụng
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao
thức TCP/IP Dùng UDP, chương trình trên mạng máy tính có thể gửi những dữ liệu ngắn được gọi là datagram tới máy khác UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất
mà không có thông báo Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.UDP dùng cổng để cho phép các giao tiếp giữa các ứng dụng diễn ra
- Cổng (port) :dùng 16 bit để đánh địa chỉ, vì vậy số của cổng nằm trong
khoản 0 đến 65.535 Cổng 0 được để dành và không nên sử dụng Cổng từ 1 đến 1023 được gọi là cổng "well-known" và trên các hệ điều hành tựa Unix, việc gắn kết tới một trong những cổng này đòi hỏi quyền root Cổng 1024 đến 49.151 là cổng đã đăng ký ,Cổng từ 49.152 đến 65.535 là các cổng tạm, được dùng chủ yếu bởi client khi liên lạc với server
Trang 27- Cấu trúc gói:UDP là giao thức hướng thông điệp nhỏ nhất của tầng giao vận
hiện được mô tả trong RFC 768 của IETF.Trong bộ giao thức TCP/IP, UDP cung cấp một giao diện rất đơn giản giữa tầng mạng bên dưới (thí dụ, IPv4)
và tầng phiên làm việc hoặc tầng ứng dụng phía trên.UDP không đảm bảo cho các tầng phía trên thông điệp đã được gửi đi và người gửi cũng không có trạng thái thông điệp UDP một khi đã được gửi (Vì lý do này đôi khi UDP còn được gọi là Unreliable Datagram Protocol).UDP chỉ thêm các thông tin multiplexing và giao dịch Các loại thông tin tin cậy cho việc truyền dữ liệu nếu cần phải được xây dựng ở các tầng cao hơn
Hình 213:Cấu trúc gói dữ liệu UDP
1.2 PC817
2.5.1 Định nghĩa
- PC 817 cũng là dạng opto nó hoạt động tượng tự như các opto khác
- Khi cung cấp 5V vao chân số 1, LED phía trong Opto nối giữa chân số 1 và 2 sáng, xảy ra hiệu ứng quang điện dẫn đến 3-4 thông,mức logic sẽ bị chuyển từ 1 sang 0 mà không cần tác động trực tiếp từ IC
Trang 282.4 Rơ-le (relay)
2.4.1 Định nghĩ rơ le (relay)
Rơ le (relay) là một công tắc chuyển đổi hoạt động bằng điện Nói là một công tắc vì rơ le có 2 trạng thái ON và OFF Rơ le ở trạng thái ON hay OFF phụ thuộc vào có dòng điện chạy qua rơ le hay không
2.4.2 Nguyên tắc hoạt động
Khi có dòng điện chạy qua rơ le, dòng điện này sẽ chạy qua cuộn dây bên trong và tạo ra một từ trường hút Từ trường hút này tác động lên một đòn bẩy bên trong làm đóng hoặc mở các tiếp điểm điện và như thế sẽ làm thay đổi trạng thái của rơ le Số tiếp điểm điện bị thay đổi có thể là 1 hoặc nhiều, tùy vào thiết kế
Rơ le có 2 mạch độc lập nhau họạt động Một mạch là để điều khiển cuộn dây của rơ le: Cho dòng chạy qua cuộn dây hay không, hay có nghĩa là điều khiển rơ le
ở trạng thái ON hay OFF Một mạch điều khiển dòng điện ta cần kiểm soát có qua được rơ le hay không dựa vào trạng thái ON hay OFF của rơ le
Dòng chạy qua cuộn dây để điều khiển rơ le ON hay OFF thường vào khoảng 30mA với điện áp 12V hoặc có thể lên tới 100mA Và bạn thấy đó, hầu hết các con chip đều không thể cung cấp dòng này, lúc này ta cần có một BJT để khuếch đại dòng nhỏ ở ngõ ra IC thành dòng lớn hơn phục vụ cho rơ le
Chú ý:Tuy vậy, IC 555 có dòng điện ngõ ra có thể lên tới 200mA, vì thế với
IC 555 thì không cần một BJT để khuếch đại dòng
Cách hoạt động của rơ le với cuộn dây và các tiếp điểm điện : khi có dòng điện chạy qua cuộn dây, cuộn dây hút một đòn bẩy và làm mở các tiếp điểm điện, vì thế dòng điện cần kiểm soát không thẩy đi qua rơ le Và ngược lại Bạn cũng thấy
đó, dòng điện chạy qua cuộn dây không hề có liên quan gì đến dòng điện cần kiểm soát
Trên rơ le có 3 kí hiệu là: NO, NC và COM
Trang 29+ COM (common): là chân chung, nó luôn được kết nối với 1 trong 2 chân
còn lại Còn việc nó kết nối chung với chân nào thì phụ thuộc vào trạng thái hoạt động của rơ le
+ NC (Normally Closed): Nghĩa là bình thường nó đóng Nghĩa là khi rơ le ở
trạng thái OFF, chân COM sẽ nối với chân này
+ NO (Normally Open): Khi rơ le ở trạng thái ON (có dòng chạy qua cuộn
dây) thì chân COM sẽ được nối với chân này
=> Kết nối COM và NC khi bạn muốn có dòng điện cần điều khiển khi rơ le ở trạng thái OFF Và khi rơ le ON thì dòng này bị ngắt
=> Ngược lại thì nối COM và NO