MỤC LỤC
CHƯƠNG I GIỚI THIỆU .5
I. TỔNG QUAN.5
II. GIỚI THIỆU SƠ LƯỢC NỘI DUNG .5
III. SƠ BỘ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN : .6
CHƯƠNG II CHUẨN TRUYỀN THÔNG RS232,RS422/485&
ADAPTER CHUYỂN ĐỔI RS232–RS485 .7
I. GIỚI THIỆU: .7
I.1 RS232 .7
I.2 RS-422/485.8
CHƯƠNG III MẠNG TRUYỀN THÔNG .23
I. KÊNH TRUYỀN THÔNG .23
I.1 Khái niệm .23
I.2 Phân loại kênh: .23
I.3 Băng thông và tốc độ bit.23
I.4 Kênh thuê riêng (leased line) và kênh quay số (dial-up).23
I.5 Điều chế tín hiệu .24
I.6 Các kỹ thuật điều chế .24
I.7 Sự đồng bộ trong điều chế số .24
I.8 Kiểu truyền .24
I.9 Truyền dữ liệu .24
I.10 Truyền thông kiểu nối tiếp bất đồng bộ .30
I.11 Truyền nối tiếp đồng bộ .31
II. NETWORK PROGRAMMING.32
II.1 Các giao thức quản lý mạng .33
II.2 Định địa chỉ (Addressing) .37
II.3 Xác định thời gian truyền (Transmitter Enable Timing) .40
CHƯƠNG IV GIỚI THIỆU 68HC11 .41
I. GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN .41
I.1 Microcontroller Motorola MC68HC11 .41
I.2 Đơn vị xử lý trung tâm (CPU).44
I.3 Các mode định vị địa chỉ.46
I.4 Tập lệnh của họ MC68HC11.47
II. CẤU HÌNH VÀ CÁC CHẾ ĐỘ HOẠT ĐỘNG.47
II.1 Các chế độ hoạt động .47
II.2 Các thanh ghi điều khiển .48
III. XUẤT NHẬP SONG SONG .53
III.1 PORT A.53
III.2 PORT B .54
III.3 PORT C .54
III.4 PORT D.54
III.5 PORT E .55
IV. HỆ THỐNG TRUYỀN NỐI TIẾP .55
IV.1 Hệ thống SCI trong MC68HC11 :.55
IV.2 Các thanh ghi SCI và các bit điều khiển .56
V. BỘ ĐẾM THỜI GIAN LẬP TRÌNH.60
V.1 Bắt giữ ngõ vào.61
V.2 So sánh ngõ ra.61
V.3 Các thanh ghi trong bộ đếm thời gian.61
VI. RESET VÀ INTERRUPT.64
VI.1 Reset .64
VI.2 Hệ thống ngắt của vi xử lý MC68HC11 (interrupt).66
VI.3 Sử dụng ngắt Reset và các vectơ ngắt khác của MCU68HC11 .68
CHƯƠNG V THIẾT KẾ MẠCH VÀ LẬP TRÌNH .71
I. MẠCH RS485 : .71
I.1 Giới thiệu SN75176: .71
I.2 Điều khiển phát data trên RS485 .72
Phương pháp định thời theo hướng bít .73
I.3 Điều khiển nhận trên RS485 .75
II. CHƯƠNG TRÌNH THU THẬP DỮ LIỆU TỪ CÁC BOARD .78
II.1 Chương trình trên Vi xử lý .78
II.2 Chương trình trên PC .83
II.3 Kết quả thực hiện : .84
III. DỮ LIỆU THU THẬP.87
III.1 Tính tốc độ động cơ .87
III.2 Chương trình đếm sản phẩm .91
III.3 Một số chương trình điều khiển đơn giản từ PC .91
KẾTLUẬN 107
PHỤ LỤC
A. CHƯƠNG TRÌNH MÁY TÍNH.109
B. CHƯƠNG TRÌNH VI XỬ LÝ .117
C. DATASHEETS.133
D. TÀI LIỆU THAM KHẢO. .134
131 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1836 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế mạng giám sát và điều khiển MC68HC11 dùng RS485, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
($7F). Nếu kết quả
phép cộng hoặc trừ vượt quá khoảng này thì CPU đưa cờ tràn (overflow flag) V về
1, nếu kết quả nằm trong khoảng này thì CPU xóa cờ bằng 0.
• Cờ zero (báo bằng không) (Z)
Được set nếu kết quả trong các hoạt động xử lý dữ liệu, logic, số học là bằng
không.
• Cờ negative (báo âm) (N)
Được sét nếu kết quả trong các hoạt động xử lý dữ liệu, logic, số học là số
âm (bit MSB=1).
• Cờ che ngắt (I)
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 46
Bit I là một bit che toàn cục khiến cho tất cả các nguồn ngắt có thể được che.
Khi bit I được set, các ngắt trở nên ở trạng thái chờ, nhưng các CPU hoạt động tiếp
tục mà không bị ngắt đến khi bit I được xoá.
• Cờ hafl carry (H)
Cờ được set nếu có nhớ từ bit 3 sang bit 4 trong đơn vị tính toán số học trong
các lệnh ADD, ABA, ADC. Cờ này thường được sử dụng trong các hoạt động BCD.
• Cờ che ngắt (X)
Cho phép ngắt từ chân XIRQ bên ngoài. Bit che ngắt X chỉ được set bằng
phần cứng và xoá bằng lệnh chương trình.
• Cờ cho phép Stop (S)
Bit dừng Stop (S) sử dụng để cho phép hoặc không cho phép lệnh Stop.
I.3 Các mode định vị địa chỉ
I.3.1 Địa chỉ vốn có (Inherent Addressing Mode)
Với địa chỉ vốn có mã lệnh không đòi hỏi có toán hạng, mọi thông tin cần
thiết nằm ngay trong nội dung lệnh. Tên mã lệnh dạng Mnemonic chứa dữ liệu
toán hạng cần tìm.
I.3.2 Địa chỉ tức thời (Immediate Addressing Mode)
Với chế độ địa chỉ tức thời, mã thao tác chỉ ra cần phải làm gì và toán hạng
cần làm nằm ở đâu, nghĩa là chỉ dữ liệu được tác động đến.
I.3.3 Địa chỉ trực tiếp (Direct Addressing) và địa chỉ mở rộng (Extended
Addressing)
Định vị địa chỉ trực tiếp và địa chỉ mở rộng tương tự nhau. Trong cả hai
trường hợp toán hạng là địa chỉ chứ không phải là dữ liệu. Sự khác nhau giữa địa
chỉ trực tiếp và địa chỉ mở rộng chỉ là toán hạng là địa chỉ 1 byte với chế độ trực
tiếp và địa chỉ 2 byte với chế độ mở rộng.
I.3.4 Địa chỉ số (Indexed Addressing Mode)
Một offset 8 bit không dấu được cộng vào giá trị thanh ghi chỉ số (IX hay IY).
Tổng này là địa chỉ hiệu dụng. Mode định vị địa chỉ này rất mạnh và hữu ích cho
phép tham chiếu đến bất kỳ vùng nhớ nào trong không gian 64 K byte địa chỉ.
I.3.5 Địa chỉ tương đối
Mode địa chỉ này chỉ được sử dụng cho các lêïnh rẽ nhánh. Nếu điều kiện rẽ
nhánh là đúng, một offset 8 bit có dấu được cộng vào nội dung của bộ đếm chương
trình (PC) từ địa chỉ rẽ nhánh hiệu dụng. Nếu không chương trình sẽ xử lý lệnh kế
tiếp.
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 47
I.4 Tập lệnh của họ MC68HC11
Tập lệnh của MC68HC11 có thể được tóm tắt và chia làm các nhóm sau
I.4.1 Các lệnh thực hiện phép toán số học và luân lý
• Các phép toán số học: gồm các phép toán cộng trừ, so sánh, tăng giảm…:
ADDA, SUBA, CMPA, INCA, DECA,…
• Lệnh nhân và chia: MUL, IDIV, FDIV.
• Các phép toán luận lý: ANDDA, ORAA, EORA, NEGA, COMA,…
• Các phép toán dịch và quay: ASLA, ASRA, LSLA, LSRA, ROLA, RORA,...
• Các phép toán trên bit (đặt xóa bit/ đặt xoá cờ): BSET, BCLR, CLC, SEC,
SEI,…
I.4.2 Các lệnh chuyển số liệu
• Chuyển số liệu từ bộ nhớ vào thanh ghi: LDAA, LDAB, LDX, LDY, LDS,…
• Chuyển số liệu từ thanh ghi vào bộ nhớ: STAA, STAB, STX, STY, STS, …
• Chuyển số liệu từ thanh ghi vào ngăn xếp: PSHA, PSHB, PSHX, PSHY,…
• Chuyển số liệu từ ngăn xếp vào thanh ghi: PULA, PULB, PULX, PULY,…
• Chuyển số liệu giữa các thanh ghi: TAB, TBA, XGDX, XGDY,…
I.4.3 Các lệnh nhảy, rẽ nhánh và gọi chương trình con
• Lệnh nhảy: JMP
• Lệnh rẽ nhánh: BRA, BNE, BEQ, BHI, BLO,…
• Lệnh gọi chương trình con: ISR
• Lệnh trở về từ chương trình con: RTS
I.4.4 Các lệnh liên quan đến ngắt và trạng thái MCU
• Lệnh cho phép, cấm ngắt: CLI, SEI
• Lệnh trở về từ ngắt: RTI
• Các lệnh đặt MCU vào chế độ tiết kiệm năng lượng: WAIT, STOP
II. CẤU HÌNH VÀ CÁC CHẾ ĐỘ HOẠT ĐỘNG
II.1 Các chế độ hoạt động
MC68HC11 có 2 chế đôï hoạt động cơ bản: single-chip và mở rộng. Mỗi chế
đôï hoạt động có một biến thể bình thường và một biến thể đặt biệt. Có 4 chế độ
hoạt động khác nhau được lựa chọn bởi hai chân MODA và MODB trong lúc reset.
Bảng lựa chọn chế độ hoạt động:
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 48
Ngõ vào Các bit điều khiển trong thanh ghi HPRIO
(Chốt khi Reset)
MODB MODA
Chế độ hoạt
động
RBOOT SMOD MDA IRV
1 0 Single chip 0 0 0 0
1 1 Mở rộng 0 0 1 0
0 0 Boootstrap 1 0 0 1
0 1 Kiểm tra 0 0 1 1
II.1.1 Chế độ đơn chip (single-chip)
Do chế độ đơn chip không cần các chức năng bus dự liệu và địa chỉ bên
ngoài nên các chân port B, port C, strobe A (STRA), strobe B (STRB) là có sẽ cho
xuất nhập song song. Trong chế độ này chương trình điều khiển MCU được chứa ở
bộ nhớ trong.
II.1.2 Chế độ mở rộng (expanded)
Chế độ hoạt động này cho phép bộ nhớ và các thiết bị ngoại vi được truy
xuất bởi một bus địa chỉ/ dữ liệu, port B và C được sử dụng cho việc giải mã địa chỉ
và cung cấp bus mở rộng.
II.1.3 Chế độ Boostrap :
Máy tính chạy chương trình đặc biệt, gọi hệ điều hành, điều khiển vào ra, sử
dụng bộ nhớ và chạy chương trình.
II.1.4 Chế độ kiểm tra đặc biệt
Đây là chế độ hoạt động đặc biệt chỉ dùng cho nhà sản xuất để kiểm tra sản
phẩm. Nhưng ta cũng có thể sử dụng chế độ này để giả lập và sửa lỗi.
II.2 Các thanh ghi điều khiển
II.2.1 Thanh ghi HPRIO ($103C)
Thanh ghi HPRIO là một thanh ghi 8 bit, 4 bit cao liên quan đến việc lựa
chọn mode, 4 bit thấp thì không liên qua đến việc lựa chọn mode.
RBOOT SMOD MDA IRV PSEL3 PSEL2 PSEL1 PSEL0
RESET 0 0 0 0 0 1 1 0 Single-chip
0 0 1 0 0 1 1 0 Expanded
1 1 0 0 0 1 1 0 Bootsrap
0 1 1 1 0 1 1 0 Test
RBOOT- Read Bootrap ROM (chỉ có nghĩa khi SMOD=1, không thể ghi lại
được sau khi xoá).
! RBOOT = 0 không thể sử dụng ROM Bootstrap.
! RBOOT = 1 có thể sử dụng ROM Bootrap ở địa chỉ $BF00 - $BFFF.
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 49
SMOD – Special Mode Select.
Có thể xoá SMOD bằng phần mềm, do đó có thể chuyển xóa SMOD để
chuyển MCU từ chế độ special sang chế độ normal mà không cần phải reset lại.
Khi đã xoá SMOD thì không thể đặt lại được.
! SMOD = 0 : chế độ bình thường (normal).
! SMOD = 1 : chế độ đặc biệt (special).
MDA – Mode A select.
MDA phản ánh giá trị mức logic ở chân MODA khi reset. Có thể xoá MDA
khi SMOD =1, khi SMOD =0 không thể ghi xoá MDA, muốn thay đổi chế độ hoạt
động phải reset lại MCU.
! MDA = 0 : chế độ Single – Chip hoặc Special Bootstrap.
! MDA = 1 : chế độ Expanded hoặc Special Test.
IRV – Internal Real Visibility.
Bit IRV cho phép hay cấm truy xuất dữ liệu trên data bus bên ngoài.
! IRV = 0 : cho phép truy xuất dữ liệu bên trong khi xuất hiện trên data
bus bên ngoài.
! IRV = 1 : cho phép truy xuất dữ liệu lên data bus bên ngoài.
PSEL[3:0] – Priority Select 4 bit chọn ngắt có chế độ ưu tiên cao nhất trong
tất cả các ngắt che được.
II.2.2 Thanh ghi CONFIG ($103F)
Thanh ghi CONFIG là một byte EEPROM điều khiển cấu hình khi khởi động
MCU. Nội dung thanh ghi CONFIG không thay đổi khi mất nguồn hay khi reset.
Khi lập trình lại thanh ghi CONFIG cấu hình của máy chỉ thay đổi ở lần
reset kế tiếp.
Bit 7 6 5 4 3 2 1 Bit 0
NOSEC NOCOP ROMON EEON
Reset 0 0 0 0 0 0 0 1
Bit[7:4] – không sử dụng.
NOSEC – Security disable.
! NOSEC = 0 : cho phép chế độ bảo mật.
! NOSEC = 1 : cấm hệ thống bảo mật.
NOCOP – COP System Disable.
! NOSEC = 0 : cho phép hệ thống COP.
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 50
! NOSEC = 1 : cấm hệ thống COP.
ROMON – ROM Enable.
Cho phép hay cấm 12 Kbyte ROM bên trong MCU trong bản đồ bộ nhớ ở
chế độ Expanded. Ở chế độ Single – Chip ROMON bị cưỡng bức bằng 1.
! ROMON = 0 : cấm 12 Kbyte ROM nội trong bản đồ bộ nhớ.
! ROMON = 1 : cho phép 12 Kbyte ROM nội trong bản đồ bộ nhớ.
EEON – EEPROM Enable.
Bit này cho phép hay cấm 512 byte EEPROM bên trong MCU.
! EE = 0 : cấm EEPROM trong bản đồ bộ nhớ.
! EEON =1 : cho phép EEPROM trong bản đồ bộ nhớ.
II.2.3 Thanh ghi INIT ($103D)
Thanh ghi này cho phép thay đổi địa chỉ của 512 byte RAM và khối 64 thanh
ghi điều khiển trong bản đồ bộ nhớ.
64 Kbyte vùng nhớ của vi xử lý của MC68HC11 chia thành 16 trang, mỗi
trang chiếm 4 Kbyte bộ nhớ. Khi lập trình chi thanh ghi INIT chúng ta có thể đặt
khối RAM và khối thanh ghi ở bất kỳ vùng nhớ nào.
Sau khi reset thanh ghi INIT có giá trị bằng $01 và chỉ có thề lập trình trong
64 chu kỳ E-clock đầu tiên sau khi reset.
Bit 7 6 5 4 3 2 1 Bit 0
RAM3 RAM2 RAM1 RAM0 REG3 REG2 REG1 REG0
Reset 0 0 0 0 0 0 0 1
INIT – RAM and I/Của Mapping Register.
! RAM[0:3] – Vị trí bắt đầu RAM trong bản đồ bộ nhớ.
! REG[3:0] – Vị trí khối thanh ghi trong bản đồ bộ nhớ.
II.2.4 Thanh ghi OPTION ($1039)
Thanh ghi OPTION dùng để chỉ cấu hình hệ thống bên trong MCU trong quá
trình khởi động sau reset.
OPTION – System Configuration Options
Bit 7 6 5 4 3 2 1 Bit 0
ADPU CSEL RIQE DLY CME 0 CR1 CR0
Reset 0 0 0 0 0 0 0 1
ADPU – Analog To Digital Converter Power Up
! ADPU = 0 : cấm bộ biến đổi A/D.
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 51
! ADPU = 1 : cho phép bộ biến đổi A/D.
CSEL –Clock select.
! CSEL = 0 : bộ biến đổi A/D và EEPROM dùng E-clock của hệ thống.
! CSEL = 1 : bộ biến đổi A/D và EEPROM dùng mạch tạo xung clock RC
(không đồng bộ với xung E-lock) bên trong
IRQE – Configure IRQ for Edge Sensitive Only Operation.
! IRQE = 0 : tác động theo mức thấp.
! IRQE = 1 : tác động theo cạnh xuống.
DLY – Enable Oscillator Startup Delay.
! DLY = 0 : không cần thời gian trì hoãn khi thoát khỏi chế độ stop.
MCU sẽ hồi phục việc xử lý trong 4 chu kỳ bus.
! DLY = 1 : cho phép hoãn 400 chu kỳ E-lock để bộ dao động ổn định.
Khi MCU thoát khỏi chế độ stop. Khi reset DLY = 1 và bit này chỉ có
thể lập trình trong 64 chu kỳ E-clock đầu tiên sau reset.
CR[1:0] – COP Timer Rate Select Bits
II.2.5 Thanh ghi BPROT ($103D)
BPROT – Block protect
Bit 7 6 5 4 3 2 1 Bit 0
0 0 0 PTCON BPRT3 BPRT2 BPRT1 BPRT0
Reset 0 0 0 0 0 0 0 0
Thanh ghi này cho phép bảo vệ chống lập trình thanh ghi CONFIG và
EEPROM.
Bit[7:5] – không được kể đến
PTCON – Protect confit.
! PTCON = 0 : có thể lập trình hoặc xoá thanh ghi CONFIG.
! PTCON = 1 : không thể lập trình hoặc xóa thanh ghi CONFIG.
BPRT[3:0] – Block Protect Bits For EEPROM.
Khi các bit này dược đặt bằng 1 thì không thể lập trình hay xoá khối
EEPROM tương ứng, các bit tương ứng với các khối EEPROM như sau :
Các khối EEPROM được bảo vệ bởi BPROT
Bit Name Block Protect Block Size
BTRT0 $B600-$B61F 32 Bytes
BTRT1 $B620-B65F 64 Bytes
BTRT2 $B660-$B6DF 128 Bytes
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 52
BTRT3 $B6E0-$B7FF 288 Bytes
II.2.6 Thanh ghi PPROG ($103B)
Thanh ghi PPROG điều khiển lập trình EEPROM
PPROG – EEPROM Programming Control
Bit 7 6 5 4 3 2 1 Bit 0
ODD EVEN 0 BYTE ROW ERASE EEFLAT EEPGM
Reset 0 0 0 0 0 0 0 0
Bit ODD và EVEN cho phép lập trình nửa chẵn hay lẻ của EEPROM.
ODD – Program Odd Row in Haft of EEPROM.
EVEN – Program Even Row in Haft of EEPROM.
BYTE – Byte Erase Select.
! BYTE = 0 : xoá hàng hoặc xoá toàn bộ EEPROM.
! BYTE = 1 : xóa chỉ 1 byte EEPROM.
ROW – Row / All Erase Select.
Nếu BYTE = 1 thì ROW không có ý nghĩa.
! ROW = 0 : xoá toàn bộ EEPROM.
! ROW = 1 : xoá một hàng.
Tác dụng của 2 bit BYTE và ROW đến việc xoá EEPROM như sau :
BYTE ROW Tác động
0 0 Xoá toàn bộ EEPROM (512 byte)
0 1 Xoá hàng (16 byte)
1 0 Xoá byte
1 1 Xoá byte
ERASE – Erase Mode Select.
! ERASE = 0 : đọc hoặc mod lập trình.
! ERASE = 1 : Mode xoá EEPROM.
EELAT – EEPROM Latch Control.
! EELAT = 0 : Bus địa chỉ dữ liệu được cấu hình là đọc không thể lập
trình được.
! EELAT = 1 : Bus địa chỉ và bus dữ liệu được cấu hình cho lập trình
hay xoá và không thể đọc EEPROM.
EEPRM – EEPROM Program Command.
! EEPGM = 0 : tắt nguồn điện lập trình hay xoá EEPROM.
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 53
! EEPGM = 1 : bật nguồn điện lập trình hay xoá EEPROM.
III. XUẤT NHẬP SONG SONG
MC68HC11E2 có 5 Port I/O với 38 đường xuất nhập phụ thuộc vào Mode
hoạt động. Chức năng các chân được tóm tắt như sau :
Port/Bit Các chân
Input
Các chân
Output
Các chân
truyền 2 chiều
Các chức năng
cùng chia xẻ
Port A 3 3 2 Timer
Port B 8 - Địa chỉ cao
Port C - 8 Địa chỉ thấp
và bus dữ liệu
Port D 6 SCI và SPI
Port E 6 - Bộ chuyển đổi
A/D
Tương ứng với mỗi Port MCU có một thanh ghi dữ liệu, do đó có 5 thanh ghi
dữ liệu Port là thanh ghi : PORTA, PORTB, PORTC, PORTD, PORTE. Việc xuất
hay nhập dữ liệu trêncác Port tương ứng. Sau đây sẽ khảo sát chức năng từng Port
cụ thể.
III.1 PORT A
Port A chỉ có 3 chân xuất, 3 chân chỉ nhập và 2 chân xuất nhập 2 chiều. Port
A dùng chung các chân vào ra với hệ thống thời gian.
Khi reset các chân xuất sẽ bằng 0, các chân nhập ở tồng trở cao.
Thanh ghi Port A – Port A data ($1000)
Bit 7 6 5 4 3 2 1 Bit 0
PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
Reset HIZ 0 0 0 HIZ HIZ HIZ HIZ
Alt
func
PAI OC2 OC3 OC4 IC4/OC5 IC1 IC2 IC3
3 chân chỉ nhãp là PA6, PA5, PA4.
3 chân chỉ xuất là PA2, PA1, PA0.
2 chân xuất nhập 2 chiều là PA7, PA3.
Chiều xuất nhập của 2 chân PA7, PA3 được điều khiển bởi bit DDRA7 và
DDRA3 trên thanh ghi PACT.
Thanh ghi PACTL – Pulse Accummulator Control ($1026)
Bit 7 6 5 4 3 2 1 Bit 0
DDRA7 PAEN PADRE PEDGE DDRA3 I4/OC5 RTR1 RTR0
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 54
Reset 0 0 0 0 0 0 0 0
DDRA7 – Data Direction for Port A Bit 7.
! 0 = PA7 là chân nhập.
! 1 = PA7 là chân xuất.
III.2 PORT B
Ở chế độ single chip, các chân của Port B là các ngõ ra. Ở chế độ expanded
8 chân của Port B là 8 đường địa chỉ cao ADDR[15:8].
Thanh ghi PORT B – Port B data ($1004)
Bit 7 6 5 4 3 2 1 Bit 0
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
Reset 0 0 0 0 0 0 0 0
III.3 PORT C
Ở chế độ single chip các chân của Port C có thể xuất nhập 2 chiều. Ở chế độ
expanded các chân của Port C được dồn kênh thành 8 đường địa chỉ thấp hoặc 8
đường dữ liệu ADDR[7:0]/DATA[7:0].
Thanh ghi Port C – Port C data ($1003)
Bit 7 6 5 4 3 2 1 Bit 0
PC7 PC6 PC5 PC4 PPC3 PC2 PC1 PC0
Reset 0 0 0 0 0 0 0 0
Khi hoạt động như Port xuất nhập đa dụng, các bit trên thanh ghi DDRC sẽ
quyết định chiều truyền dữ liệu ở các chân Port C.
Thanh ghi DDRC – Data direction Register for Port C ($1007)
Bit 7 6 5 4 3 2 1 Bit 0
DDC7 DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0
Reset 0 0 0 0 0 0 0 0
DDC[7:0] – Data Direction for PortC
! 0 = Chân nhập
! 1 = Chân xuất
III.4 PORT D
Port D có thể được dùng như Port xuất nhập 2 chiều hoặc sử dụng cho các hệ
thống SCI và SPI mà không phụ thuộc vào các chế độ hoạt động.
Thanh ghi PORT D – Port data ($1008)
Bit 7 6 5 4 3 2 1 Bit 0
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 55
0 0 PD5 PD4 PD3 PD2 PD1 PD0
Reset I I I I I I I I
Khi Port D là Port xuất nhập thanh ghi DDRD sẽ quyết định chiều xuất nhập
từng bit của Port D
Thanh ghi DDRD – Data Direction Register for Port D ($1009)
Bit 7 6 5 4 3 2 1 Bit 0
- - DDD5 DDD4 DDD3 DDD2 DDD1 DDD0
Reset 0 0 0 0 0 0 0 0
DDD[7:0] – Data Direction for Port D
! 0 = chân tương ứng là chân nhập.
! 1 = chân tương ứng là chân xuất.
III.5 PORT E
Port E là Port nhập hoặc sử dụng cho các chức năng A/D.
Thanh ghi Port E – Port E data ($100A)
Bit 7 6 5 4 3 2 1 Bit 0
PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0
Reset I I I I I I I I
IV. HỆ THỐNG TRUYỀN NỐI TIẾP
MC68HC11 có 2 hệ thống phụ (subsystem) cho giao tiếp :
Giao diện truyền nối tiếp SCI (Serial Communication Interface) được dùng
để nối từ một cổng CRT hoặc PC đến một MicroController, hoặc nối đến nhiều
MicroController khác trên mạng truyền tin.
Giao tiếp ngoại vi nối tiếp SPI (Serial Peripheral Interface) truyền nối tiếp
đến thiết bị ngoại vi hoặc các đơn vị MicroController khác với tốc độ cao (high
speed).
Trong luận văn này, em chỉ xin giới thiệu giao diện truyền nối tiếp SCI
IV.1 Hệ thống SCI trong MC68HC11 :
Chuẩn SCI có thể sử dụng để truyền với các thiết bị từ xa qua cable, đường
điện thoại hoặc bộ truyền Radio. Hệ thống phụ SCI dùng chân PDI port D làm
đường truyền TxD và dùng chân PD0 làm đường nhận RxD, các đuờng này có thể
hoặc bị cấm qua thanh ghi điều khiển SCI (SCCR2). Khi bị cấm, đường port D được
dùng làm I/O, được xác định do thanh ghi định hướng dữ liệu DDRD. Nếu bộ
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 56
truyền hoặc bộ nhận được phép, hệ thống phụ SCI sẽ điều khiển đường D bất chấp
sự cài đặt trong thanh ghi DDRD.
IV.1.1 Hoạt động truyền
Bộ phận chính của hoạt động truyền là thanh ghi dịch phát nối tiếp. Thông
thường, thanh ghi dịch này sẽ nhận dữ liệu từ bộ đệm phát. Dữ liệu được đưa vào
bộ đệm phát khi phần mềm viết vào thanh ghi dữ liệu SCI (SCDR). Thanh ghi tốc
dộ Baud (BAUD) khi được khởi tạo sẽ xác định tốc độ shift.
Ngoài ra, hệ thống còn set các cờ rỗng thanh ghi truyền dữ liệu (transmit
data register flag – DTRE). Mỗi lần truyền dữ liệu từ vùng đệm đến thanh ghi shift.
Phần mềm sẽ dò tìm cờ TDRE đã được set hay chưa. Chương trình điều khiển sẽ
đáp ứng bằng cách viết byte dữ liệu khác đến vùng đệm TDR. Việc viết đến vùng
đệm sẽ xoá cờ TDRE trước khi byte dữ liệu đã được dịch ra ngoài. Vùng đệm đôi
(double buffer) được dùng có ý nghĩa là : khi thanh ghi dịch đang dịch ra ngoài 1
byte, vùng đệm dữ liệu sẽ lưu trữ byte kế tiếp. Như vậy, hệ thống sẽ viết tiếp byte
thứ 2 trong khi byte thứ nhất đang được truyền.
Khi thanh ghi dịch hoàn thành tác vụ dịch được 1 byte, hệ thống phụ SCI sẽ
tự động truyền nội dung của vùng đện TDE đến thanh ghi dịch . Nó sẽ bắt đầu dịch
ngay tức thì, điều này sẽ làm cho hệ thống set cờ TDRE để thông báo rằng phần
mềm có thể viết byte khác vào vùng đệm TDR.
IV.1.2 Hoạt động nhận
Hoạt động nhận này cũng gần giống như hoạt động truyền trên . Việc khởi
tạo thanh ghi BAUD sẽ xác định tốc độ dịch . Khi tất cả các bit được dịch , hệ
thống sẽ truyền nội dung thanh ghi dịch đến vùng đệm thanh ghi nhận dữ liệu RDR.
Nó khởi tạo 9 bit, nó cũng truyền bit R8 đến thanh ghi SCCR1. Sự truyền dữ liệu sẽ
set các cờ sẵn sàng nhận dữ liệu (receive data ready - RDRF ) để thông báo cho
phần mềm rằng dữ liệu đã sẵn sàng để được đọc. Bộ nhận dữ liệu sẽ lấy mẫu bit
stop và đợi bit start trước khi nó dịch vào nhóm bit dữ liệu kế tiếp
Chương trình điều khiển bộ nhận dữ liệu có thể đọc vùng đệm thanh ghi đọc
dữ liệu RDR (read data resiter) bất cứ lúc nào khi dữ liệu kế tiếp đang được dịch
vào, trong trường hợp này vùng đệm sẽ lưu trữ hầu hết các byte dữ liệu vừ nhận
gần nhất. Nó lưu trữ các byte hiện hành trong khi cá byte kế tiếp được dịch vào
hoàn toàn. Việc đọc vùng đệm RDR sẽ reset lại các cờ RDRF và cho phép các byte
kế được truyền đến nó.
IV.2 Các thanh ghi SCI và các bit điều khiển
Thông thường, phần mềm sẽ khởi động hệ thống phụ trước (chẳng hạn 1
chương trình con sau khi reset) bằng cách viết vào các thanh ghi trạng thái giá trị
thích hợp
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 57
Thanh ghi truyền dữ liệu (SCDR-$102E) :
Cả 2 thanh ghi truyền dữ liệu TDR và thanh ghi nhận dữ liệu RDR có cùng
địa chỉ với thanh ghi dữ liệu SCDR. Nếu dữ liệu được viết đến thanh ghi SCDR, dữ
liệu sẽ đến TDR. Nếu thanh ghi được đọc, dữ liệu sẽ đến từ RDR.
Bit 7 6 5 4 3 2 1 Bit 0
R7/T7 R6/T6 R5/T5 R4/T4 R3/T3 R2/T2 R1/T1 R0/T0
Reset U U U U U U U U
Thanh ghi tốc độ Baud (BAUD-$102B)
Bit 7 6 5 4 3 2 1 Bit 0
TCLR 0 SCP1 SCP0 RCKB SCR2 SCR1 SCR0
Reset 0 0 0 0 0 U U U
Thanh ghi tốc độ Baund (BAUD) dùng để lựa chọn sự thay đổi về tốc độ .
Các bit SCP0 và SCP1 được xem như là số chia cho các bit SCR0, 1, 2.
MC68HC11 có một bộ chia tốc độ (rate generator) mà nó tỉ số giữa đồng hồ
hệ thống và 16 . Như vậy , tốc độ baud cao nhất là E/16 (hoặc = tần số thạch
anh/16).
Thanh ghi điều khiển nối tiếp 1 (SCCR1-$102C) :
Bit 7 6 5 4 3 2 1 Bit 0
R8 T8 0 M WAKE 0 0 0
Reset U U 0 0 0 0 0 0
R8 : bit dữ liệu nhận 8.
Khi hệ thống SCI được đặt là 9 Bit thì bit này đóng vai trò như là bit mở rộng
( bit9) của RDR.
T8 : bit phát dữ liệu 8.
Khi hệ thống SCL được đặt là 9 bit data thì bit này đóng vai trò như là bit mở
rộng (bit9) của TDR.
M : Mode (select character format)
! 0 =1 start bit , 8 data bit , 1 stop bit.
! 1 =1 start bit , 9 data bit , 1 stop bit.
WAKE : Chọn lựa chế độ Wake up (Wake-up method select)
! 0 = IDLE line. Bộ nhận sẽ được đánh thức nếu đường truyền ở mức iddle
trong khoảng thời gian ít nhất là bằng 1 ký tự.
! 1 = Adress mark. Mức logic 1 ở vị trí MSB (có thể là bit thứ 8 hoặc thứ 9
tuỳ thuộc vào bit M) sẽ đánh thức bộ nhận.
Bits[2:0] : Luôn có gía trị là 0.
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc Tuấn Trang 58
Thanh ghi điều khiển nối tiếp 2 (SCCR2-$102D) :
Bit 7 6 5 4 3 2 1 Bit 0
TIE TCIE RIE ILIE TE RE RWU SBK
Reset 0 0 0 0 0 0 0 0
TIE – Cho phép ngắt phát (Transmit Interrupt Enable).
! 0 = Cấm ngắt phát.
! 1 = cho phép ngắt phát khi cờ TDRE set lên 1.
TCIE- Cho phép ngắt khi truyền xong (Transmit Complete Interrupt Enable).
! 0 = Cấm ngắt khi truyền xong.
! 1 = Ngắt khi cờ TC set lên 1.
RIE- Cho phép ngắt nhận (Receiver Interrupt Enable ).
! 0 = Cấm ngắt RDRF và OR.
! 1 = Ngắt khi cờ RDRF hoặc OR set lên 1.
ILIE – Cho phép ngắt khi đường dây ở mức Iddle (Idle Line Interrupt
Enable).
! 0 = Cấm ngắt Iddle.
! 1 = Ngắt khi cờ Iddle set lên 1 (chức năng này bị cấm khi cho phép chế
độ wake-up).
TE – Cho phép phát (Transmitter Enable).
! 0 = Cấm bộ truyền SCI.
! 1 = Cho phép bộ truyền SCI.
RE – Cho phép nhận (Receiver Enable).
! 0 = Cấm bộ nhận SCI.
! 1 = Cho phép bộ nhận SCI.
RWU – Điều khiển chọn chế độ Wake–up cho bộ nhận.
! 0 = Bộ nhận SCI hoạt động bình thường.
! 1 = Đặt bộ nhận SCI vào chế độ chờ. Các ngắt liên quan đến bộ nhận sẽ
bị cấm cho đến khi một số điều kiện được thoả . Điều kiện đánh thức bộ
nhận tuỳ thuộc vào cách lựa chọn của bit WAKE trong thanh ghi SCCR1.
SBK - Send Break.
Thanh ghi trạng thái SCI (SCSR-$103E)
Bit 7 6 5 4 3 2 1 Bit 0
TDRE TC RDRF IDLE OR NF FE 0
Reset 1 1 0 0 0 0 0 0
Mạng giám sát và điều khiển GVHD : Ths. LÊ TUẤN ANH
SVTH : Nguyễn Quốc
Các file đính kèm theo tài liệu này:
- Nguyen Quoc Tuan.pdf