Cơ chế giao tiếp

Một phần của tài liệu Điều khiển phân tán chuyển động robot công nghiệp shephent theo quỹ đạo định trước (Trang 54)

Đặc trƣng của CAN là phƣơng phỏp giao tiếp hƣớng đối tƣợng, trong khi hầu hết cỏc hệ thống bus trƣờng khỏc đều giao tiếp dựa vào địa chỉ cỏc trạm. Mỗi thụng tin trao đổi trong mạng đƣợc coi nhƣ một đối tƣợng, đƣợc gỏn một mó số căn cƣớc. Thụng tin đƣợc gửi trờn bus theo kiểu truyền thụng bỏo với độ dài cú thể khỏc nhau.

Cỏc thụng bỏo khụng đƣợc gửi tới một địa chỉ nhất định mà bất cứ trạm nào cũng cú thể nhận theo nhu cầu. Nội dung mỗi thụng bỏo đƣợc cỏc trạm phõn biệt qua một mó căn cƣớc (IDENTIFER). Mó căn cƣớc khụng núi lờn địa chỉ đớch của thụng bỏo mà chỉ biểu diễn ý nghĩa của dữ liệu trong thụng bỏo. Vỡ thế mỗi trạm trờn mạng cú thể tự quyết định tiếp nhận và xử lý thụng bỏo hay khụng tiếp nhận thụng bỏo qua phƣơng thức lọc thụng bỏo (Message Filtering). Cũng nhờ sử dụng phƣơng thức lọc thụng bỏo, nhiều trạm cú thể đồng thời nhận cựng một thụng bỏo và cú csc phản ứng khỏc nhau.

Một trạm cú thể yờu cầu một trạm khỏc gửi dữ liệu bằng cỏch gửi một khung REMOTE FRAME. Trạm cú khả năng cung cấp nội dung thụng tin đú sẽ gửi trả lại một khung dữ liệu DATA FRAME cú cựng mó căn cƣớc với khung yờu cầu. Bờn cạnh tớnh đơn giản, cơ chế giao tiếp hƣớng đối tƣợng ở CAN cũn mang lại tớnh linh hoạt và tớnh nhất quỏn dữ liệu của hệ thống. Một trạm CAN khụng cần biết thụng tin cấu hỡnh hệ thống (vớ dụ địa chỉ trạm), nờn việc bổ sung hay bỏ đi một trạm trong mạng khụng đũi hỏi bất cứ một sự thay đổi nào về phần cứng hay phần mềm ở cỏc trạm khỏc. Trong một mạng CAN cú thể rằng một thụng bỏo hoặc đƣợc tất cả cỏc trạm quan tõm tiếp nhận đồng thời, hoặc khụng đƣợc trạm

nào tiếp nhận. Tớnh nhất quỏn dữ liệu đƣợc đảm bảo qua cỏc phƣơng phỏp gửi đồng loạt và xử lý lỗi.

4.1.3.1. Truy nhập bus

CAN sử dụng phƣơng phỏp truy nhập mụi trƣờng CSMA/CA, tức điều khiển phõn kờnh theo từng bit. Phƣơng phỏp phõn mức ƣu tiờn truy nhập bus dựa theo tớnh cấp thiết của nội dung thụng bỏo. Mức ƣu tiờn này phải đƣợc đặt cố định, trƣớc khi hệ thống đi vào vận hành. Thực tế mó căn cƣớc khụng những mang ý nghĩa của dữ liệu trong thụng bỏo, mà cũn đồng thời đƣợc sử dụng là mức ƣu tiờn.

Bất cứ một trạm nào trong mạng cũng cú thể bắt đầu gửi thụng bỏo, mỗi khi đƣờng truyền rỗi. Mỗi bức điện đều bắt đầu bằng một bit khởi điểm và mó căn cƣớc, vỡ thế nếu hai hoặc nhiều trạm cựng đồng thời bắt đầu gửi thụng bỏo, việc xung đột trờn đƣờng truyền sẽ đƣợc phõn xử dựa theo từng bit của mó căn cƣớc. Mỗi bộ thu phỏt đều phải so sỏnh mức tớn hiệu của mỗi bit gửi đi với mức tớn hiệu quan sỏt đƣợc trờn bus. Nếu hai mức tớn hiệu cú trạng thỏi logic giống nhau thỡ trạm cú quyền phỏt bit tiếp theo, trƣờng hợp ngƣợc lại sẽ phải dừng ngay lập tức.

Trong trƣờng hợp thực hiện bit giỏ trị 0 ứng với mức trội và bit giỏ trị 1 ứng với mức lặn, bit 0 sẽ lấn ỏt. Vỡ vậy một thụng bỏo cú mó căn cƣớc nhỏ nhất sẽ đƣợc tiếp tục phỏt. Hay núi một cỏch khỏc, thụng bỏo nào cú mó căn cƣớc càng bộ thỡ mức ƣu tiờn càng cao. Trong trƣờng hợp xảy ra va chạm giữa một thụng bỏo mang dữ liệu (DATA FRAME) và một thụng bỏo yờu cầu gửi dữ liệu (REMOTE FRAME) với cựng mó căn cƣớc, thụng bỏo mang dữ liệu sẽ đƣợc ƣu tiờn. Phƣơng thức phõn xử này khụng những đảm bảo thụng tin khụng bị mất mỏt, mà cũn nõng cao hiệu quả sử dụng đƣờng truyền.

4.1.3.2. Bảo toàn dữ liệu

Nhằm đảm bảo mức an toàn tối đa trong truyền dẫn dữ liệu, mỗi trạm CAN đều sử dụng kết hợp nhiều biện phỏp để tự kiểm tra, phỏt hiện và bỏo hiệu lỗi. Cỏc biện phỏp kiểm soỏt lỗi sau đõy đƣợc ỏp dụng”

 Theo dừi mức tớn hiệu của mỗi bit truyền đi và so sỏnh với tớn hiệu nhận đƣợc trờn bus.

 Kiển soỏt qua mó CRC

 Thực hiện nhồi bit (nhồi một bớt nghịch đảo sau năm bit giống nhau)  Kiểm soỏt khung thụng bỏo

Với cỏc biện phỏp trờn, hiệu quả đạt đƣợc là:  Phỏt hiện đƣợc tất cả cỏc lỗi toàn cục

 Phỏt hiện đƣợc tất cả cỏc lỗi cục bộ tại bộ phỏt

 Phỏt hiện đƣợc tới 5 bit lỗi phõn bố ngẫu nhiờn trong một bức điện

 Phỏt hiện đƣợc cỏc lỗi đột ngột cú chiều dài nhỏ hơn 15 bit trong một thụng bỏo

 Phỏt hiện đƣợc cỏc lỗi cú số bit là chẵn

 Tỉ lệ lỗi cũn lại (xỏc suất một thụng bỏo cũn bị lỗi khụng phỏt hiện) nhỏ hơn 4.7*10-11.

Tất cả cỏc trạm nhận thụng bỏo phải kiểm tra sự nguyờn vẹn của thụng tin và xỏc nhận thụng bỏo. khi phỏt hiện ra sự sai lệch trong thụng bỏo, cỏc trạm đều cú trỏch nhiệm truyền khung lỗi. Cỏc thụng bỏo bị lỗi đú sẽ bị dừng và đƣợc tự động phỏt lại. Thời gian hồi phục từ khi phỏt hiện lỗi đến khi bắt đầu gửi thụng bỏo tiếp theo tối đa là 31 thời gian bit, nếu nhƣ khụng cú lỗi xảy ra tiếp theo.

Cỏc trạm CAN cú khả năng phõn biệt giữa nhiễu nhất thời với lỗi kộo dài, vớ dụ lỗi khi một trạm cú sự cố. Cỏc trạm bị hỏng sẽ đƣợc tự động tỏch ra khỏi mạng (về mặt logic).

4.1.3.3. Mó hoỏ bit

Trƣớc khi đƣợc chuyển đổi thành tớn hiệu trờn đƣờng truyền, CAN sử dụng phƣơng phỏp nhồi bit (bit stuffing). Dóy bit đầu vào cần nhồi bao gồm bit khởi đầu khung, ụ phõn xử, ụ điều khiển, dữ liệu và dóy CRC. Khi năm bit liờn tục giống nhau, bộ phỏt sẽ tự động bổ sung một bit nghịch đảo vào cuối. Bờn nhận sẽ phỏt hiện ra bit đƣợc nhồi và tỏi tạo thụng tin ban đầu. Việc nhồi bit khụng đƣợc thực hiện với phần cũn lại của khung dữ liệu và khung yờu cầu dữ liệu, cũng nhƣ đối với cỏc khung lỗi và khung quỏ tải. Cuối cựng dóy bit đƣợc mó hoỏ theo phƣơng phỏp Non-return-to-zero(NRZ), cú nghĩa là trong suốt một chu kỳ bit, mức tớn hiệu hoặc là trội hoặc là lặn.

4.2. VI XỬ Lí ATMEL AT89C52CC02

Vi xử lý AT98C51CC02 của hóng Atmel thuộc dũng vi xử lý 8951 vốn đó rất quen thuộc với cỏc kỹ sƣ, thậm chớ với cả cỏc sinh viờn Việt Nam. Đú là một trong những lý do quan trọng để tỏc giả triển khai CAN trờn phần cứng này. Vi xử lý AT98C51CC02 hỗ trợ toàn bộ cỏc lệnh của dũng vi xử lý 8051 và trờn chớp cũn cú phần cứng hỗ trợ truyền thụng theo chuẩn CAN.

4.2.1. Cỏc tớnh năng chớnh

Ngoài bộ nhớ flash và lừi vi xử lý 8 bit x51, cỏc bộ phận ngoại vi nhƣ UART, timer hoàn toàn tƣơng đƣơng với dũng vi xử lý 8952, vi xử lý AT89C51CC02 cũn cú thờm cỏc tớnh năng:

 2 KB flash cho Boot Loader

 2 KB EEPROM, dành cho lƣu tham số hệ thống (trong quỏ trỡnh chạy)

 2 Mảng lụgic lập trỡnh đƣợc (PCA) 16bit cú thể sử dụng nhƣ cỏc bộ PWM hoặc timer, tạo xung tần số cao...

 21bit Watchdog Timer

 10 bit ADC với 8 đầu vào dồn kờnh.  CAN controller.

Với tuỳ chọn UART Boot Loader, chỳng ta cú thể lập trỡnh cho chip thụng qua cổng giao tiếp nối tiếp, với chip vẫn nằm trờn mạch mà khụng cần phải thỏo chip ra đƣa vào bộ nạp. Do khụng yờu cầu phải cú bộ nạp chuyờn dụng, đắt tiền nờn việc phỏt triển chƣơng trỡnh và thiết kế mạch in cho chip này rất thuận lợi. Hơn thế, vi xử lý này đƣợc tớch hợp bộ điều khiển truyền thụng CAN (CAN controller) trờn chip. Việc tớch hợp này khụng chỉ hỗ trợ tốc độ truyền thụng và xử lý cao, bờn cạnh đú CAN controller này cũn cung cấp cả cỏc bộ nhớ đệm và hỗ trợ một số tớnh năng trả lời tự động của CAN.

Hỡnh 4.2: Sơ đồ khối của vi xử lý AT89C51CC02

Lừi (core) của bộ vi xử lý AT89C51CC02 hỗ trợ tốc độ đến 40Mhz. Cỏc thiết bị ngoại vi tớch hợp trờn chớp tƣơng đƣơng với dũng vi xử lý 8052 bao gồm 4 cổng vào ra song song (port1-4), 3 bộ định thời (timer0-2), 14 nguồn tạo ngắt và 256 byte ram.

4.2.2. Bộ điều khiển truyền thụng CAN (CAN Controller) của AT89C51CC02 AT89C51CC02

4.2.2.1. Sơ đồ khối

Hỡnh 4.3: Sơ đồ khối bộ điều khiển truyền thụng CAN của vi xử lý AT89C51CC02

4.2.2.2. Cỏc tớnh năng chớnh của bộ điều khiển truyền thụng CAN

 Hỗ trợ cả 2 chuẩn CAN 2.0A và 2.0B

 Tối ƣu cấu trỳc để giao tiếp với lừi vi xử lý dễ dàng (thụng qua cỏc thanh ghi SFR)

 Khả năng lƣu 4 đối tƣợng thụng điệp (message object) độc lập  Tự động trả lời khung yờu cầu dữ liệu

 Hỗ trợ chế độ nghe (listening mode) với khả năng tự động nhận tốc độ truyền thụng trờn mạng (AutoBaud)

4.2.2.3. Cơ chế hoạt động

Mỗi khung bản tin gửi hoặc nhận đƣợc lƣu trong cỏc vựng bộ đệm gọi là một đối tƣợng thụng điệp (message object). Cỏc đối tƣợng thụng điệp này bao gồm 8byte dữ liệu của bản tin, 4 byte ID của bản tin và 1 byte cấu hỡnh bản tin.

Bộ điều khiển CAN của AT89C51CC02 hỗ trợ 4 đối tƣợng thụng điệp. Mỗi thụng điệp cú thể đặt ở nhiều chế độ, độc lập với nhau, đặc biệt là trong chế độ trả lời tự động. Bộ điều khiển CAN này quản lý cỏc đối tƣợng thụng điệp thụng qua cơ chế phõn trang (pagination). Cơ chế này cho phộp bộ điều khiển CAN tổ chức cỏc đối tƣợng thụng điệp thành 4 mailbox, mỗi mailbox cú 20 byte dữ liệu. Bộ điều khiển CAN giao tiếp với lừi của vi xử lý thụng qua cỏc thanh ghi đặc biệt (Special Function Register). Cú 32 SFR để quản lý toàn bộ hoạt động của bộ điều khiển CAN.

Bộ điều khiển CAN cú thể tạo ra 5 nguồn ngắt vi xử lý bao gồm:  Ngắt truyền bản tin: ngắt khi hoàn tất truyền một bản tin.  Ngắt nhận bản tin: ngắt khi đó nhận đƣợc một bản tin đầy đủ.  Ngắt bỏo lỗi: khi xảy ra cỏc lỗi nhƣ lỗi bit, lỗi crc, lỗi xỏc nhận…  Ngắt do bộ đệm đó đầy

Hỡnh 4.4: Sơ đồ cỏc ngắt của bộ điều khiển CAN trong vi xử lý AT89C51CC02

4.3. VI ĐIỀU KHIỂN TÍCH HỢP BỘ XỬ Lí TÍN HIỆU SỐ MICROCHIP DSPIC30F4011

dsPIC30 là một dũng vi điều khiển 16 bit tớch hợp bộ xử lý tớn hiệu số 16 bit của hóng Microchip. Với việc tớch hợp module xử lý tớn hiệu số (Digital Signal Processor) và một lừi vi điều khiển (controller), hóng Microchip đó tạo ra một bộ vi điều khiển cú khả năng xử lý cỏc phộp tớnh phức tạp và điều khiển trực tiếp cỏc thiết bị ngoại vi chỉ với một linh kiện duy nhất. Khụng chỉ làm gọn nhỏ cỏc bo mạch, một chip nhƣ vậy cũn làm đơn giản việc thiết kế mạch điện tử và đặc biệt là tăng khả năng chống nhiễu cho hệ thống.

Trong dũng vi điều khiển dsPIC30, dsPIC30F4011 với giỏ thành hợp lý đƣợc thiết kế chuyờn dụng cho điều khiển động cơ. dsPIC30F4011 đƣợc tớch hợp cỏc module đặc biệt trong lừi vi điều khiển nhƣ bộ đọc xung phản hồi vị trớ động cơ (quadrature encoder), bộ điều chế độ rộng xung (PWM), bộ biến đổi tớn hiệu tƣơng tự-số (ADC), và đặc biệt là bộ điều khiển truyền thụng CAN. Do đú, dsPIC30F4011 rất thớch hợp trong việc xõy dựng cỏc bộ điều khiển động cơ trong hệ thống điều khiển phõn tỏn robot SHEPHENT.

4.3.1. Cỏc tớnh năng chớnh của dsPIP30F401:

 Kiến trỳc Harvard cú hiệu chỉnh

 Tập lệnh tối ƣu cho ngụn ngữ lập trỡnh C với chế độ địa chỉ linh hoạt.  Tập lệnh gồm 84 lệnh cơ bản với độ dài lệnh 24 bit, độ dài dữ liệu 16 bit  48 KB bộ nhớ Flash, cú thể nạp lại nhiều lần

 2 KB bộ nhớ RAM

 1KB bộ nhớ EEPROM cho phộp lƣu cỏc tham số mà khụng cần nguồn nuụi  Tốc độ xử lý tối đa 30 triệu lệnh trong 1 giõy (MIPs)

 30 nguồn tạo ngắt với 3 nguồn ngoài, 8 mức ƣu tiờn  Bộ xử lý tớn hiệu số đƣợc tớch hợp

 Chế độ địa chỉ module và đảo bit

 Bộ nhõn bằng phần cứng 17 x 17 bit chỉ trong 1 chu kỳ lệnh

4.3.1.1. Cỏc thiết bị ngoại vi trờn chip

 Cỏc chõn vào/ra cú khả năng chịu dũng cao: 25mA

 Module định thời (Timer) với tần số xung clock cú thể chia đƣợc và cấu hỡnh thành 1 cặp Timer 16 bit hoặc 1 timer 32 bit

 Bộ điều chế độ rộng xung (PWM) với độ phõn giải 16 bit

 Module truyền dữ liệu SPI và ….. hỗ trợ chế độ nhiều chủ tớ (Multi- Master/slave) và chế độ địa chỉ 7 bit/10 bit

 2 module truyền thụng nối tiếp (UART) với bộ đệm FIFO  Module truyền thụng CAN tƣơng thớch chuẩn 2.0B

4.3.1.2. Cỏc module tớn hiệu tương tự (anolog)

 4 bộ chuyển đổi tớn hiệu tƣơng tự - số (ADC) với cỏc khả năng :  Tốc độ lấy mẫu lờn tới 500Ksps

 9 kờnh vào

 Chuyển đổi ngay cả trong chế độ ngủ (sleep)  Cú thể lập trỡnh để khởi động lại (reset) hệ thống

4.3.1.3. Cỏc tớnh năng khỏc của vi điều khiển

 Bộ nhớ chƣơng trỡnh Flash với khả năng ghi/xúa tới 100.000 lần  Bộ nhớ EEPROM với khả năng ghi/xúa 1 triệu lần

 Cú khả năng tự lập trỡnh lại bằng mó lệnh

 Watchdog Timer sử dụng bộ giao động C riờng trờn chip cho phộp tiờu thụ năng lƣợng nhỏ và độn tin cậy rất cao

 Hỗ trợ khả năng lập trỡnh trờn bo mạch (In-circurt Serial Programing)

4.3.1.4. Chế tạo theo cụng nghệ CMOS

 Cụng nghệ Flash với hiệu suất cao

 Dải điện ỏp nguồn rất rộng 2,5V đến 5,5V

 Tiờu thụ năng lƣợng rất nhỏ

4.3.2. Cỏc module chuyờn dụng cho điều khiển động cơ của vi điều

khiển dsPIP30F4011

 6 kờnh ra PWM với nhiều khả năng lựa chọn  Ra theo 3 cặp hoặc kờnh riờng biệt

 3 bộ thay đổi chu kỳ đặc biệt cho động cơ 3 pha

 Thời gian trễ cho việc đúng /mở phần điện tử cụng suất cú thể cấu hỡnh lại.

 Modul giải mó xung phản hồi vị trớ (Quadraturn Encoder)  Bộ 3 đầu vào cho cỏc tớn hiệu kờnh A, B, Index

 Thanh ghi vị trớ 16 bit

 Cú chế độ X2, X4 cho phộp đếm theo cỏc sƣờn xung bờn, xuống, cú thể tạo ra ngắt khi thanh ghi tràn

 Bộ lọc nhiễu cú thể lập trỡnh đƣợc

4.3.2.1. Module điều khiển mụtơ PWM

Module này làm đơn giản bài toỏn điều chế độ rộng xung (Pulse Width Modulated – PWM). Trong thực tế, module PWM sẽ đƣợc ứng dụng cho cỏc bài toỏn điều khiển truyến động sau:

 Điều khiển động cơ 3 pha xoay chiều dõy quấn  Điều khiển động cơ từ trở chuyển mạch

 Điều khiển động cơ một chiều  Nguồn UPS

Module PWM cú những tớnh năng sau:  06 cổng vào/ra PWM với 3 bộ tạo chu kỳ  Độ phõn giải lờn tới 16 bit

 Thay đổi tần số PWM ’ on – the – fly’  Cỏc chế độ đầu ra : Sƣờn và trung tõm  Chế độ tạo xung đơn

 Hỗ trợ ngắt cho việc cập nhật khụg đối xứng trong chế độ trung tõm  Bộ so sỏnh sự kiện đặc biệt cho việc lập lịch những sự kiện ngoại vi khỏc Module này chứa 3 bộ tạo chu kỳ, đƣợc đỏnh số từ 1 đến 3. Nú cú 6 cổng ra PWM đƣợc đỏnh số từ PWM 1H/ PWM 1L đến PWM 3H/PWM 3L, nú đƣợc tổ hợp thành từng nhúm cao/thấp(High/Low). Đối với những tải bổ xung, cổng PWM thấp luụn luụn bổ xung tƣơng ứng với cổng vào/ra cao

Module này cho phộp một vài chế độ hoạt động, vỡ vậy rất thuận tiện cho cỏc ứng dụng điều khiển cụng suất xỏc định.

4.3.2.2. Module giao diện encoder gúc phần tư (Quadrature Encoder

Interface Module – QEI)

Module này cung cấp giao diện cho encoder vị trớ tƣơng đối để lấy đƣợc dữ liệu vị trớ của động cơ, khụng cần sự can thiệp của phần mềm.

Một bộ encoder vị trớ tƣơng đối tiờu biểu cú 3 đầu ra: pha A, pha B và xung

Một phần của tài liệu Điều khiển phân tán chuyển động robot công nghiệp shephent theo quỹ đạo định trước (Trang 54)

Tải bản đầy đủ (PDF)

(83 trang)