Soccer robot bao gồm CPU MR188 board, board điều khiển động cơ, RF(vô tuyến) module.Để tăng sự hoạt động của robot, bộ điều khiển CPLD được sử dụng để điều khiển độ rộng xung PWM động cơ và các tín hiệu encoder.CPLD là phương tiện trợ giúp cho việc lập trình điều khiển.
18 trang |
Chia sẻ: vietpd | Lượt xem: 1569 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Hardware của soccer robot, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
HARDWARE CỦA SOCCER ROBOT
2.1 Giới thiệu chung về hardware của soccer robot:
Soccer robot bao gồm CPU MR188 board, board điều khiển động cơ, RF(vô tuyến) module.Để tăng sự hoạt động của robot, bộ điều khiển CPLD được sử dụng để điều khiển độ rộng xung PWM động cơ và các tín hiệu encoder.CPLD là phương tiện trợ giúp cho việc lập trình điều khiển.
Hardware của robot cụ thể như sau:
CPU:Kích thước 72mmx46mm(MR188A1 Board)
RF và Motor Control Board:71.5mmx72.5mm
DC motor:
-Hộp số: 7.5:1
-Tốc độ tối đa:1.5m/s.
Encoder: 512 pulse/vòng
Pin: 7.2V,450mAh
RF Module: BiM-418 hoặc BiM-433
Driver động cơ DC:L298
DC motor controller: CY37128(CPLD)
2.2 RF Module:
2.2.1 RF Module là gì?
RF (Radio Frequency) module là thiết bị sử dụng đề truyền thông sóng vô tuyến. Trong trường hợp này tần số sóng vô tuyến đề cập đến sóng điện thông dụng và không chỉ là tần số vô tuyến phát thanh. RF module có thể được phân loại theo tần số, phương pháp điều biến (sự biến đổi của tín hiệu dạng số sang dạng tương tự, thường dùng trong truyền tín hiệu qua các hệ thống viễn thông), dữ liệu, cường độ ngõ ra…
2.2.2 Charisma RF Board:
Mạch giao tiếp vô tuyến Charisma chuyển đổi dữ liệu nối tiếp RS232 sang dữ liệu RF và ngược lại. Charisma Board có thể dễ dàng kết nối với các thiết bị sử dụng cổng RS232. Charisma được thiết kế sử dụng RadioMetrix BiM,TX2 hay RX2
modules. PC và PC cũng có thể giao tiếp được với nhau nếu cả 2 PC đều kết nối với
Charisma board.
2.3 Radiometrix BiM-UHF:
2.3.1 Định nghĩa và ứng dụng Radiometrix:
BiM-418-F và BiM-433F là những module vô tuyến UHF thu nhỏ có khả năng truyền dữ liệu đơn công với tốc độ lên đến 40Kbit/s và khoảng cách truyền lên đến
30m(trong nhà) và 120m(ngoài trời).
Tần số Tốc độ Khoảng cách Nguồn Anten
BiM-418-F 418MHz 40K bps 30-120m 4.5V-5.5V 16.5cm
BiM-433-F 433.92MHz 40H bps 30-120m 4.5V-5.5V 16.5cm
Module này tích hợp bộ phát UHF FM năng lượng thấp, bộ thu đổi tần số phù hợp với phục hồi dữ liệu và những mạch chuyển đổi TX/RX để cung cấp một giải pháp kinh tế trong thực hiện việc liên kết dữ liệu bằng sóng vô tuyến tầm ngắn theo
2 chiều. Tốc độ dữ liệu cao (40kbit/s) và sự chuyển đổi TX/RX nhanh(<1ms) làm cho bộ phát BiM lý tưởng cho việc truyền nguyên vẹn thông tin của những liên kết one-to-one và mạng.
Những ứng dụng thực tế của module:
Những mạng máy tính có tốc độ trung bình.
Những báo động về an ninh/cứu hỏa.
Việc điều khiển / hiển thị trong các tòa nhà.vv
2.3.2 Mô tả các chân :
Hình 2.1: Mô tả các chân của Radiometrix.
Pin13:Đây là ngõ ra của điều chế FM. Nó có DC bias hiện hành khoảng xấp xỉ
1.5V và có thể được sử dụng để lái những bộ giải mã dữ liệu tương tự như là những bộ giải mã modem. Trở kháng ngõ ra là 10kOhm. Ngõ ra chỉ là dữ liệu thực cho BiM-418 và đảo ngược lại với BiM-433.
Pin14 (TXD): Ngõ vào này luôn <0.5V khi TX không được chọn.
Pin 15 (TX select):Sự lựa chọn truyền/nhận với điện trở trong 10kOhm.
Pin16 (RX select): Có thể được lái bằng cực thu hở hoặc là CMOS logic.
Pin17: VCC: có thể sử dụng các nguồn áp từ 4.5-5.5 V. Độ gợn sóng tối đa là
50mV đỉnh-đỉnh.
2.4 Charisma board:
2.4.1 Sơ đồ bố trí:
Hình 2.2: Sơ đồ bố trí của mạch giao tiếp RF.
2.4.2 Cài đặt module:
Module RF là các module giao tiếp 2 chiều.Để chọn chế độ truyền và nhận có thể sử dụng phương pháp phần mềm và phần cứng.Phương pháp phần mềm sử dụng chân RTS của cổng RS232.Phương pháp phần cứng sử dụng khối jumper như sau:
Cài đặt jumper Chế độ
1,2 Nhận
2,3 Phương pháp phần mềm (truyền và nhận)
Empty Truyền, phát
Nếu sử dụng phương pháp phần mềm thì dùng cáp nối tiếp 4 dây kết nối vào
JP3 thay cho JP2.
JP4 ANT BIM418(or 433) DC 9V JP1 POWER DC 5V JP7
Kết nối một đầu của cáp nối tiếp (đầu nối có header) vào JP2.Đầu còn lại(đầu nối DB9) gắn vào cổng COM của máy tính.
Ba chân của JP4 kết nối như sau để RF board hoạt động theo chế độ chỉ truyền phát:
Cả 3 chân của JP4 không nối với nhau(JP4 hở).
Chân 1 và 2 của JP4 nối với nhau và chân 3 để hở.
Gắn anten vào cực ANT.
Đặt RF module(BiM-418-F hay BiM-433-F) vào IC socket
Nối adapter 6V-12V vào J1 hoặc DC 5V vào JP7;pin 9V vào JP1.
2.4.3 Những yêu cầu cơ bản mà dữ liệu truyền nối tiếp phải thỏa mãn:
T(thời gian của độ rộng xung):25us<T<2ms.
Phần chuẩn bị:Mẩu dữ liệu trong bộ nhận đòi hỏi ít nhất 3ms của các byte chuẩn bị “10101010” hay “01010101” được truyền trước khi dữ liệu tại ngõ ra RXD đạt được độ tin cậy .Nếu thời gian này tăng lên 5ms sẽ làm giảm đi nhiễu RF.
Tỉ lệ Mark/Space:Mẩu dữ liệu trong bộ thu thường là những dạng sóng dữ liệu với tỉ lệ trung bình 50:50 Mark:Space trong chu kỳ 4ms.Mẩu tin sau đó sẽ duy trì sự bất đối xứng lên đến tỉ lệ 30:70(hoặc 70:30),tuy nhiên điều này dẫn đến kết quả là sẽ tăng được độ rộng xung và giảm thiểu nhiễu.
Packet:Packet là dữ liệu đóng gói đi kèm theo các luật được sử dụng trong giao tiếp RF.Ví dụ về một dạng packet:
- Preamble(chuẩn bị):có thể dùng chuỗi dữ liệu 55h hay AAh.
- 55h=01010101B,AAh=10101010B→Tỉ lệ Mark:Space 50:50
- FFh: Để tìm bit bắt đầu
- (FFh):Tùy ý.
- Start byte :Byte bắt đầu .
- (01h):Tùy ý.
- Data bytes:Chuỗi byte 00H hay FFH sẽ bị lỗi vì tỉ lệ mark/space không phù hợp. Các giá trị thích hợp có thể là 17h, 1Bh, 1Dh, 1Eh, …4Eh,
53h…, 87h, 8Bh…
- CRC hay Checksum:Tùy ý.
2.5 MR188A1 board:
2.5.1 Giới thiệu về vi điều khiển AM188ES:
AM188ES là sự phát triển của họ vi điều khiển AMD theo tiêu chuẩn công nghiệp x86. Vi điều khiển AM188ES có khả năng hoạt động và sự tích hợp cao hơn dòng vi xử lý 80C188 vì những lí do sau :
+ Tối thiểu hoá chi phí của toàn bộ hệ thống:Những thiết bị ngoại vi mới và hệ thống tương thích logic tích hợp trong vi điều khiển AM188ES giảm chi phí trong các thiết kế so với vi xử lý 80C188.
+ Tăng cường sự hoạt động: Vi điều khiển AM188ES tăng cường cho hoạt động của hệ thống 80C188 và bus địa chỉ đơn thành phần tạo ra sự truy xuất bộ nhớ nhanh và không cần bộ đệm.
+ Tăng cường các chức năng: Những thiết bị ngoại vi mới và được tăng cường trong AM188ES bao gồm 2 cổng nối tiếp không đồng bộ, 32PIOs(chân I/O), watchdog timer, những chân vào ngắt, bộ điều rộng xung, bộ điều khiển PSRAM…
2.5.2 Tính chất đặc trưng của vi điều khiển AM188ES:
+ Tần số hoạt động 20, 25, 33, 40 MHz.
+ Vùng địa chỉ bộ nhớ: 1MB
+ 64KB vùng I/O.
+ Vcc cho tần số đến 33MHz là 5V +/- 10%.
+ Vcc cho tần số trên 33MHz là 5V +/- 5%.
+ Hai cổng nối tiếp không đồng bộ cho phép việc truyền dữ liệu song công hoàn toàn 7 bit, 8 bit hay 9bit.
+ 32 chân I/O lập trình được.
+ Watchdog timer.
+ Chế độ điều chế độ rộng xung.
+ 8 bit hoặc 16 bit bộ nhớ
+ 2 kênh DMA độc lập.
+ Các ngắt điều khiển lập trình được bao gồm:8 ngắt ngoài và 8 ngắt trong.
+ Bộ nhớ lập trình được và logic chọn chip ngoại vi.
+ 3 timer lập trình 16 bit.
+ Trạng thái tĩnh lập trình được.
+ Bộ chia xung đồng hồ tiếp kiệm năng lượng.
2.5.3 Sơ đồ khối, sơ đồ chân và chức năng các chân của vi điều khiển
AM188ES:
Hình 2.3: Sơ đồ khối của vi điều khiển AM188ES.
Hình 2.4: Chức năng các chân của vi điều khiển AM188ES.
+ Xung đồng hồ(Clocks): đưa vào các chân X1; X2; CLKOUTA; CLKOUTB.
+ Các bus địa chỉ và bus địa chỉ/dữ liệu: Các chân A19-A0; AD15-AD0; S6/ LOCK / CLKDIV 2 ; UZI
+ Điều khiển bus
+ Điều khiển timer
+ Điều khiển DMA
+ Điều khiển bộ nhớ và ngoại vi
+ Điều khiển reset và các chế độ ngắt
+ Điều khiển nhập/xuất điều khiển được
+ Điều khiển cổng nối tiếp bất đồng bộ
2.5.4 Lập trình cho vi điều khiển:
AMD188ES có tổng cộng 14 thanh ghi, chúng được chia theo các nhóm chức năng như sau:
+ Các thanh ghi thông dụng:
-8 thanh ghi 16 bit có chức năng thông dụng có thể sử dụng cho những toán hạng đại số và logic.
- Thanh ghi trong số này (AX, BX, CX, và DX) có thể được sử dụng như là các thanh ghi 16 bit hoặc chia thành các cặp thanh ghi 8 bit (AH, AL, BH, BL, CH, CL, DH và DL).
- Các thanh ghi chỉ số đến (DI) và chỉ số nguồn (SI) được sử dụng cho việc di chuyển dữ liệu và những chỉ dẫn cho chuỗi.
- Các thanh ghi Base Pointer (BP) và Stack-Pointer (SP) được sử dụng cho việc phân đoạn các stack và trỏ tương ứng đến cuối và đầu của stack.
- Các thanh ghi nền và chỉ số:
4 thanh ghi thông dụng (BP, DX, DI và SI) cũng có thể sử dụng dể xác định các địa chỉ offset của các toán hạng trong bộ nhớ.Những thanh ghi có thể mang các địa chỉ
nền hay các chỉ số trong những vùng riêng biệt khi phân đoạn.Những mode địa chỉ chọn những thanh ghi cụ thể cho các toán hạng và các phép tính toán địa chỉ.
- Thanh ghi Stack Pointer:
Tất cả các thao tác trên stack (POP, POPA, POPF, PUSHA, PUSHF) đều sử dụng stack pointer. Thanh ghi Stack Pointer luôn được offset từ thanh ghi Stack Segment
(SS).
- Các thanh ghi phân đoạn (Segment Registers):
4 thanh ghi 16 bit dùng cho mục đích đặc biệt (CS, DS, ES, SS) chọn những sự phân đoạn của bộ nhớ có địa chỉ tức thời cho đoạn mã (CS), dữ liệu (DS và ES), và stack bộ nhớ (SS).
- Các thanh ghi trạng thái và điều khiển:
Hai thanh ghi đặc biệt 16 bit ghi nhận hay điều chỉnh những giai đoạn của trạng thái xử lý của vi điều khiển-Thanh ghi chỉ dẫn (Instruction Register-IP) lưu trữ địa chỉ offset các chỉ dẫn liên tiếp theo sau để được thực thi và các cờ trạng thái xử ly
(Processor Status Flags) lưu trữ các bit cờ trạng thái và điều khiển.
Thanh ghi các cờ trạng thái xử lý:
2.5.5 Tổ chức bộ nhớ:
Bộ nhớ được tổ chức theo thành các tập hợp của các đoạn. Mỗi đoạn là dãy liền kề của 64K của các byte 8 bit bộ nhớ được định địa chỉ sử dụng địa chỉ có 2 thành phần gồm giá trị đoạn 16 bit và giá trị offset 16 bit. Offset là số lượng byte bắt đầu ở mỗi đoạn đến dữ liệu hay những chỉ thị đang được xử lý.
Bộ xử lý tạo thành địa chỉ vật lý của đích đến bằng việc lấy các đoạn địa chỉ, dịch nó sang trái 4 bit và thêm nó vào 16 bit offset. Kết quả sẽ là địa chỉ 20 bit của dữ liệu đích hay chỉ thị.Điều này cho phép kích thước địa chỉ vật lý là 1Mb.
Chẳng hạn nếu đoạn thanh ghi được nạp vào giá trị 12A4H và offset là
0022H.Kết quả là địa chỉ 12A62H.
Các giá trị đoạn 16 bit được lưu trữ vào 1 trong 4 thanh ghi đoạn bên trong
(CS,DS,ES, và SS). Để có thêm vùng bộ nhớ vi điều khiển AM188ES cung cấp vùng không gian I/O 64K.
Vùng không gian I/O:
Bao gồm các cổng 64K 8 bit hay 32K 16 bit. Các chỉ thị IN,OUT định địa chỉ vùng không gian I/O với địa chỉ port 8 bit được định rõ trong chỉ thị hay địa chỉ port
16 bit trong thanh ghi DX. Các địa chỉ port 8 bit là phần mở rộng zero để A15-A8 là mức thấp.
2.5.6 Đơn vị điều khiển ngắt:
Vi điều khiển Am188ES có thể nhận các yêu cầu ngắt từ nhiều nguồn khác nhau ở bên trong lẫn bên ngoài. Có 8 nguồn ngắt ngoài -7 chân ngắt (INT6-INT0) có che mặt nạ và 1 chân ngắt không che mặt na (NMI). Có 8 nguồn ngắt bên trong bao gồm:3 timer, 2 kênh DMA, 2 cổng nối tiếp bất đồng bộ và watchdog timer NMI.
Các dạng ngắt:
2.5.7 Đơn vị điều khiển bộ định thì (timer):
AM188ES có 3 timer 16 bit có thể lập trình được .Timer 0 và timer 1 rất đa năng và mỗi timer được kết nối với 2 chân bên ngoài(một cho input và một cho output).Hai timer này có thể dùng để đếm,ịnh thì cho các sự kiện bên ngoài ,ngoài ra chúng còn tạo ra các dạng sóng không theo chu kì và có độ rộng xung thay đổi.
Timer 2 không kết nối với chân bên ngoài ,nó được sử dụng cho những ứng dụng mã hoá thời gian thực hay delay những khoảng thời gian,nó cũng có thể dùng cho những yêu cầu DMA.
Các timer được điều khiển bởi 11 thanh ghi 16 bit nằm trong khối điều khiển ngoại vi:
Các thanh ghi timer count lưu trữ giá trị hiện tại của timer. Vi điều khiển sẽ tăng (giảm) giá trị của các thanh ghi này mỗi khi có một sự kiện diễn ra .
Mỗi timer có một thanh ghi đếm giá trị tối đa (Maximum Count Compare) xác định giá trị tối đa cho timer. Khi timer đếm đến giá trị tối đa ,nó sẽ tự động reset về
0 trong cùng chu kì xung clock. Thêm vào đó,timer 0 và timer 1 còn có thanh ghi đếm tối đa thứ 2. Sử dụng hai thanh ghi giá trị tối đa sẽ làm cho timer thay đổi lần lượt giữa 2 giá trị tối đa này.
2.5.8 Bộ điều khiển DMA:
Sự truy cập bộ nhớ trực tiếp (Direct Memory Access-DMA) cho phép sự trao đổi dữ liệu giữa bộ nhớ và ngoại vi mà không cần đến CPU. Đơn vị DMA trong vi điều khiển AM188ES cung cấp 2 kênh DMA tốc độ cao. Những sự chuyển đổi dữ liệu có thể diễn ra giữa bộ nhớ và vùng I/O hay là trong cùng một không gian
(chẳng hạn từ bộ nhớ -bộ nhớ hay I/O –I/O).
Mỗi kênh nhận yêu cầu DMA từ một trong 3 nguồn sau:chân yêu cầu kênh
DMA (DRQ1-DRQ0), timer 2 hay cổng nối tiếp bất đồng bộ.
6 thanh ghi trong khối điều khiển ngoại vi sẽ xác định sự hoạt động của các kênh DMA. Các thanh ghi DMA bao gồm địa chỉ nguồn 20bit (2 thanh ghi), địa chỉ đích 20bit (2 thanh ghi), thanh ghi đếm sự chuyển giao (số lượng sụ chuyển giao DMA được thực thi) và thanh ghi điều khiển 16 bit (điều khiển sự hoạt động của các kênh DMA).
2.5.9 Các cổng nối tiếp bất đồng bộ:
Vi điều khiển AM188ES cung cấp 2 cổng nối tiếp bất đồng bộ độc lập. Những cổng này truyền song công, chuyển giao dữ liệu 2 chiều theo các tiêu chuẩn giao tiếp công nghiệp. Những đặc điểm của cổng nối tiếp bất đồng bộ:
- Hoạt động song công
- Sự chuyển giao dữ liệu 7 bit,8 bit,9 bit.
- Parity chẵn,lẻ hoặc không có parity.
- Một bit dừng.
- DMA đến hay bắt đầu ở cổng nối tiếp.
- Các ngắt có mặt nạ riêng biệt cho mỗi cổng.
- Tốc độ baud tối đa bằng 1/16 xung clock của CPU.
- Bộ đệm đôi cho truyền và nhận .
Mỗi cổng nối tiếp được cung cấp 2 chân dữ liệu (RXD0/RXD1 và
TXD0/TXD1) và hai tín hiệu điều khiển đường truyền.Những tín hiệu điều khiển này được đặt cấu hình bởi phần mềm để cung cấp những protocol khác nhau (DCE/DTE protocol; CTS/RTR protocol).
Các cổng nối tiếp được lập trình thông qua 10 thanh ghi ngoại vi 16 bit.
2.6 MR188 board:
2.6.1 Các linh kiện và sơ đồ của board:
- Kích thước PCB:72.4mmx45.7mm(4 lớp).
- CPU:AMD188ES-40MHz
- ROM:AT29C010A(Bộ nhớ 1M bit Flash).
- RAM:621024 hay 681000( 1M bit SRAM).
- Push Switch.
- LEDs
- Connector nguồn 5V ,RS232(Max232).
Sơ đồ schematic:
2.6.2 Các đoạn code điều khiển MR188A1 Board:
MAIN.C: Chương trình chính cho Soccer robot.
CY37128.H:Header file cho bộ điều khiển động cơ CPLD.
INIT.H: Header file cho LED và các công tắc.
MOTOR2.H: Header file cho việc điều khiển PID các động cơ và encoder.
NEW_PID.H: Header file cho việc điều khiển PID và các ngắt.
NEW_PID.C: Chương trình mẫu cho RF PID điều khiển động cơ.
2.6.3 Các hàm điều khiển:
2.6.3.1 Các hàm motor và encoder:
2.6.3.2 Các hàm cho cổng nối tiếp:
Tên hàm Chức năng
void init_serial (int) Khởi động cổng nối tiếp
void rcom_clear_buffer (void) Xóa bộ đệm nhận
byte rcom (void) Nhận vào 1 byte
byte rcom_nowait (void) Hàm không chờ nhận 1 byte
void rcom_hex (byte) Nhận 1 byte(dạng hex).
void tcom (byte) Gởi đi 1 byte.
void tcom_string (byte*) Gởi đi một chuỗi
void tcom_printf (char*form…) Gởi đi một chuỗi dạng printf.