Phương pháp nghiên cứu Trong quá trình nghiên cứu, nhóm sinh viên thực hiện chủ yếu dựa vào haiphương pháp chính: - Phương pháp tham khảo tài liệu: Thu thập các tài liệu liên quan đến gi
Trang 1I.ĐẶT VẤN ĐỀ
Trang 4
Trang 2Ngày nay, khi công nghiệp ngày càng phát triển thì nhu cầu điều khiển được đặt lênhàng đầu Xuất phát từ nhu cầu đó điện tử tự động hoá ra đời và nó đã được xếp trong nhóm
5 ngành khoa học công nghệ hàng đầu vì những ứng dụng rộng rãi của nó Song song với sự
ra đời của điện tử tự động hoá là sự ra đời và cải tiến không ngừng của máy tính Từ nhữngchiếc máy tính đời đầu chỉ thực hiện những phép tính đơn giản ngày nay máy tính có tốc độ
xử lý rất cao, nó có thể xử lý hàng tỉ phép tính phức tạp trong vòng một giây Để khai thácđược những ưu điểm đó điện tử tự động hoá đã có sự bắt tay với máy vi tính Nhờ có máy vitính mà chúng ta có thể làm được nhiều công việc mà không phải tốn nhiều công sức Xuấtphát từ thực tế đó, bằng những kiến thức đã được học và sự giúp đở của thầy cô, em đã
quyết định tìm hiểu về đề tài “điều khiển thiết bị điện qua máy vi tính”.
- Đây là một đề tài nghiên cứu mang tính thực tiễn trong việc vận dụng các kiến thức
đã được học dưới mái trường Cao Đẳng vào trong thực tế
- Về mặt khoa học, đề tài sẽ giúp cho nhóm sinh viên thực hiện hiểu rõ thêm vềTruyền dữ liệu điều khiển và Cách điều khiển mạch điện thông qua máy tính
- Về mặt thực tiễn, đề tài này có thể áp dụng vào thực tế để điều khiển một số thiết bịtrong nhà như đèn điện, quạt máy v v
III GIỚI HẠN ĐỀ TÀI
Do thời gian thực hiện đề tài có hạn và kiến thức còn hạn chế nên nhóm sinh viênthực hiện đã đưa ra những giới hạn sau:
1 Điều khiển cùng lúc tối đa 10 thiết bị.
2 Mạch phải hoạt động tốt không bị nhiễu trên đường truyền tín hiệu
3 Mạch phải chạy ổn định trong quá trình làm việc
IV MỤC ĐÍCH NGHIÊN CỨU
Khi bắt tay vào thực hiện đề tài này, nhóm thực hiện mong muốn rằng sản phẩmcủa đề tài phải được ứng dụng Và đặc biệt, đối với nhóm nghiên cứu đây là điều kiện, cơ hội,cách thức để củng cố, bổ sung và ứng dụng những gì đã được lĩnh hội được trong lý thuyếtcũng như thực tập Từ đó sử dụng và ứng dụng nó nhằm đáp ứng cho nhu cầu thực tế Đâychính là những tiền đề đầu tiên để mỗi thành viên trong nhóm có được một số kiến thứcchuyên ngành nhất định, làm hành trang cho công việc sau này
Đối tượng nghiên cứu của đề tài này chính là:
Trang 5
Trang 3► Cách thức giao tiếp giữa mạch đo và máy tính
► Cách thức giao tiếp giữa mạch đo và mạch điều khiển
► Cách lập trình cho vi điều khiển để cho dữ liệu có thể thu, phát liên tục mà không
bị ngắt quãng
► Cách cân chỉnh mạch đo, đảm bảo độ chính xác của mạch đo
VI PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN NGHIÊN CỨU
1 Phương pháp nghiên cứu
Trong quá trình nghiên cứu, nhóm sinh viên thực hiện chủ yếu dựa vào haiphương pháp chính:
- Phương pháp tham khảo tài liệu: Thu thập các tài liệu liên quan đến giao tiếp máytính, Truyền số liệu, Kỹ thuật mạch điện tử, Thiết kế mạch điện tử và Phươngpháp nghiên cứu khoa học Sau đó, nhóm sinh viên vận dụng các kiến thức hiện
có để tổng hợp các tài liệu, sau cùng thiết kế ra mạch điện phù hợp với các yêucầu mà ban đầu nhóm đã đề ra
- Phương pháp quan sát và thực nghiệm: Sau khi đã có mạch theo tính toán lýthuyết, nhóm sinh viên thực hiện đã thi công mạch thực tế theo đúng sơđồnguyên lý đã vạch ra Do không có các thiết bị đo chuyên dụng thích hợp,nhóm sinh viên thực hiện đã cân chỉnh thủ công từng khối, đo điện áp và dòngđiện ngõ ra của chúng Sau đó, nhóm đã sử dụng kết quả cân chỉnh này để điềuchỉnh lại lý thuyết một cách hợp lý
2 Phương tiện nghiên cứu
a Các tài liệu liên quan đến đề tài
b Bộ nguồn ổn áp tuyến tính 5V, ±12V
c Đồng hồ đo VOM kim và số
d Máy tính
Trang 6
Trang 4Trang 7
Trang 5Đồ án tốt nghiệp thực chất là một quá trình nghiên cứu khoa học - quá trình nhận thức vàhành động Quá trình này đòi hỏi phải có thời gian nhất định tương xứng với nội dung củađối tượng nghiên cứu và tính chất phức tạp của vấn đề nghiên cứu.
Việc nghiên cứu khoa học giúp ta tìm ra cái mới Cái mới ở đây không những mang tính chủ quan của người nghiên cứu mà còn mang tính khách quan đối với xã hội.Nghiên cứu khoa học phải nhằm mục đích phục vụ xã hội, đáp ứng yêu cầu thực tiễn
Hoạt động nghiên cứu khoa học muốn đạt kết quả tốt phải hội đủ các yếu tố: phương tiện,phương pháp, cơ sở vật chất, máy móc thiết bị, hình thức tổ chức Các yếu tố này có mốiquan hệ hữu cơ và phù hợp với đối tượng nghiên cứu
Các cơ sở cho việc nghiên cứu đề tài:
I.KIẾN THỨC VÀ NĂNG LỰC NGƯỜI NGHIÊN CỨU
Trong quá trình nghiên cứu và thực hiện đề tài người nghiên cứu cần phải cân nhắc
kỹ độ khó và độ phức tạp của đề tài sao cho phù hợp với khả năng, kiến thức và năng lực củangười nghiên cứu
Độ phức tạp của đề tài thể hiện ở các mặt: lĩnh vực nghiên cứu rộng hay hẹp, ở mộtngành hay liên ngành, đối tượng nghiên cứu là đồng nhất hay không đồng nhất Tuy nhiêncần lưu ý rằng giá trị của đề tài không phụ thuộc vào độ phức tạp của nó Đề tài hẹp chưahẳn là đề tài kém giá trị Mỗi đề tài nghiên cứu khoa học có một phạm vi nhất định, phạm vinày càng hẹp thì sự nghiên cứu càng sâu Độ khó của đề tài nói lên tính vừa sức đối vớingười nghiên cứu Do đó độ phức tạp của đề tài thường có mối liên hệ tương hỗ với độ khócủa nó
Kiến thức của người nghiên cứu (đây là điều kiện chủ quan ở người nghiên cứu).Trước hết đó là kiến thức, kinh nghiệm của người nghiên cứu Người nghiên cứu phải thểhiện năng lực nghiên cứu khoa học bao gồm việc nắm vững lý thuyết cơ bản của khoa họctrong lĩnh vực nghiên cứu của mình, nắm được mức độ nhất định về sự phát triển và tiến bộthuộc lĩnh vực nghiên cứu có như thế mới chọn được đề tài có giá trị Trong tình hình tiến bộcủa khoa học kỹ thuậthiện nay trên thế giới, khối lượng thông tin khoa học gia tăng với qui
mô lớn và nhịp độ nhanh đòi hỏi người nghiên cứu phải tham khảo tài liệu nước ngoài.Đểthực hiện được vấn đề này người nghiên cứu khoa học cần có số vốn ngoại ngữ nhất định
Người nghiên cứu phải coi thực tiễn làm cơ sở, là động lực của nhận thức Angelviết: “Khi xã hội có những yêu cầu kỹ thuật thì xã hội thúc đẩy khoa học hơn mười trườngđại học” Mặt khác thực tiễn cũng là tiêu chuẩn để kiểm tra nhận thức
Thực tế là những sự việc có thật, những tình hình cụ thể, những vấn đề đã hoặc chưađược giải quyết trong cuộc sống Người nghiên cứu với kinh nghiệm bản thân trong công
Trang 8
Trang 6tác hàng ngày thường thấy được các mặt của vấn đề, các mối quan hệ phức tạp, các diễnbiến, phương hướng phát triển của sự vật từ đó có định hướng thích hợp giải quyết đề tài
Chính thực tiễn giúp người nghiên cứu tìm thấy vấn đề một cách cụ thể Người nghiêncứu phải xem thực tiễn cao hơn nhận thức (lý luận) vì nó có ưu điểm không những có tínhphổ biến mà còn có tính hiện thực trực tiếp Hồ Chủ Tịch cũng đã dạy: “Học tập thì theonguyên tắc: kinh nghiệm và thực tiễn phải đi cùng nhau”
Đề tài thực hiện mang tính thực tiễn, nội dung của đề tài là có thật, phát triển từ thực tếkhách quan
Có thể nói hầu như mọi công trình nghiên cứu điều có giá trị thực tế của nó, chỉ khácnhau ở mức độ ít nhiều, phục vụ trước mắt hay lâu dài, gián tiếp hay trực tiếp
III TÁC ĐỘNG CỦA ĐIỀU KIỆN KHÁCH QUAN ĐẾN VIỆC THỰC HIỆN ĐỀ TÀI
Trong quá trình nghiên cứu thực hiện đề tài người nghiên cứu là yếu tố chủ quangóp phần quan trọng đến kết quả còn đối tượng nghiên cứu, phương pháp nghiên cứu kể cảphương tiện ngiên cứu, thời gian nghiên cứu cùng những người cộng tác nghiên cứu vàngười hướng dẫn nghiên cứu là những điều kiện khách quan ảnh hưởng trực tiếp đến việcnghiên cứu và kết quả nghiên cứu Người nghiên cứu càng nắm chắc các yếu tố khách quan
đó bao nhiêu thì kết quả nghiên cứu càng được khẳng định bấy nhiêu
Trang 9
Trang 7I CẤU TẠO VI ĐIỀU KHIỂN 8051
Trang 10
Trang 8MCS-51 là họ IC vi điều khiển do hãng INTEL sản xuất Các IC tiêu biểu cho họ là
8031, 8051, 8951… Những đặc điểm chính và nguyên tắc hoạt động của các bộ vi điềukhiển này khác nhau không nhiều Khi đã sử dụng thành thạo một vi điều khiển thì ta có thểnhanh chóng vận dụng kinh nghiệm để làm quen và làm chủ các ứng dụng của bộ vi điềukhiển khác Vì vậy để có những hiểu biết cụ thể về các bộ vi điều khiển cũng như để phục
vụ cho đề tài này ta bắt đầu tìm hiểu một bộ vi điều khiển thông dụng nhất, đó là họ
MCS-51 và nếu như họ MCS-MCS-51 là họ điển hình thì 80MCS-51 lại chính là đại diện tiêu biểu
Các đặc điểm của 8051 được tóm tắt như sau:
4 KB ROM bên trong
128 Byte RAM nội
4 port xuất/nhập I/O 8 bit
Giao tiếp nối tiếp
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoài
Xử lý Boolean (hoạt động trên bit đơn)
210 vị trí nhớ có thể định vị bit
4µs cho hoạt động nhân hoặc chia
Loại Bộ nhớ mã trên Chip Bộ nhớ dữ liệu trên Chip Số Timer
a Các thanh ghi Port (Port Register):
Trang 11
Bảng mô tả sự khác nhau của các IC trong họ MCS-51
Trang 9Các port 0, port 1,port2, port 3 có địa chỉ tương ứng 80H, 90H, A0H, B0H.Các Port 0, Port 1, Port 2, Port 3 không còn tác dụng xuất nhập nữa nếu bộnhớ ngoài được dùng hoặc một vài tính chất đặc biệt của 8051 được dùng(như Interupt, Port nối tiếp…) Do vậy chỉ còn có tác dụng xuất nhập I/O
b Các thanh ghi Timer (Timer Register):
8051 có 2 bộ định thời/đếm16 bit, được dùng cho việc định thì hoặc đêm sựkiện Timer 0 có bit thấp TL0 ở địa chỉ 8AH và có bit cao TH0 ở địa chỉ 8CH.Timer 1 có bit thấp ở địa chỉ 8BH và bit cao TH1 ở địa chỉ 8DH
Hoạt động định thời được cho phép bởi thanh ghi mode định thời TMOD(Timer Mode Register) Ở địa chỉ 89H và thanh ghi điều khiển định thờiTCON (Timer Control Registor) ở địa chỉ 88H chỉ có TCON có bit định vị
c Các thanh ghi Port nối tiếp (Serial Port Register):
8051 chứa một Port nối tiếp trên Chip cho việc truyền thông tin với nhữngthiết bị nối tiếp như là những thiết bị đầu cuối, modem, hoặc để giao tiếp ICkhác với những bộ biến đổi A/D, những thanh ghi di chuyển, RAM…Thanhghi đệm dữ liệu nối tiếp SBUF ở địa chỉ 99H giữ cả dữ liệu phát lẫn dữ liệuthu Việc ghi lên SBUF để LOAD dữ liệu cho việc truyền và đọc SBUF đểtruy xuất dữ liệu cho việc nhận những mode hoạt động khác nhau được lậptrình thông qua thanh ghi điều khiển Port nối tiếp SCON
d Các thanh ghi ngắt (Interupt Register):
8051 có hai cấu trúc ngắt ưu tiên, 5 bộ nguồn Những Interupt bị mất tácdụng sau khi hệ thống Reset (bị cấm) và sau đó được cho phép bởi việc chophép ghi lên thanh ghi cho phép ngắt IE (Interupt Enable Register) ở địa chỉA8H Mức ưu tiên được đặt vào thanh ghi ưu tiên ngẳt IP (Interupt PriorityLevel) tại địa chỉ B8H Cả 2 thanh ghi trên đều có bit địa chỉ
Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây dựng logic, sự nối tiếp củacác lệnh được nghĩ ra một cách hiệu quả và nhanh, kết quả của chương trình thì khả quan Tập lệnh họ MCS-51 được sự kiểm tra của các mode định vị và các lệnh của chúng có cácOpcode 8 bit Điều này cung cấp khả năng 28 = 256 lệnh được thi hành và một lệnh khôngđược định nghĩa Vài lệnh có 1 hoặc 2 byte bởi dữ liệu hoặc địa chỉ thêm vào Opcode.Trong toàn bộ các lệnh có 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte
8051chia ra 5 nhóm chính:
Các lệnh số học
Trang 12
Trang 10MUL AB : (A) ← LOW [(A) x (B)]; có ảnh hưởng cờ OV
: (B) ← HIGH [(A) x (B)]; cờ Carry được xoá
DIV AB : (A) ← Integer result of [(A) / (B)]; cờ OV
: (B) ← Remainder of [(A) / (B)]; cờ Carry xoá
Tất cả các lệnh logic sử dụng thanh ghi A như là một trong những toán hạng thựcthi một chu kì máy, ngoài A mất 2 chu kì máy Những hoạt động logic có thểđược thực hiện trên bất kì byte nào trong vị trí nhớ dữ liệu nội mà không thôngqua thanh ghi A
Các hoạt động logic được tóm tắt như sau:
ANL <dest-byte>,<src-byte>
ORL <dest-byte><src-byte>
XRL <dest-byte>,<src-byte>
RL A : Quay thanh ghi A qua trái 1 bit
RLC A : Quay vòng thanh ghi A qua trái 1 bit có cờ carry
RR A : Quay thanh A ghi sang phải 1 bit
RRC A : Quay thanh ghi A sang phải 1 bit có cờ nhớ
JC Rel : Nhảy đến “Rel” nếu cờ carry C =1
JNC Rel : Nhảy đến “Rel” nếu cờ Carry C =0
JB bit,rel : Nhảy đến “Rel” nếu (bit) =1
JNB bit,rel : Nhảy đến “rel” nếu (bit) =0
Trang 13
Trang 11JBC bit, rel : Nhảy đến “rel” nếu (bit) =1 và xoá bit.
ACALL addr 11 : Lệnh gọi tuyệt đối trong Page 2K
LCAL Addr 16 :Lệnh gọi dài chương trình con trong 64 K
RET : Kết thúc chương trình con trở về chương trình chính
RETI : Kết thúc thủ tục phục vụ ngắt quay về chương trình chính AJMP addr11: Nhảy tuyệt đối không điều kiện trong 2 K
LJMP addr16 : Nhảy dài không điều kiện trong 64 K
SJMP rel : Nhảy ngắn không điều kiện trong (-128÷127) byte
CJNE A, direct, rel : so sánh và nhảy đến A nếu A ≠direct
DJNE Rn,rel : Giảm Rn và nhảy nếu Rn≠0
DJNZ direct, rel : Giảm và nhảy nếu direct ≠0
Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián tiếp Địachỉ gián tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR).Tất cả các lệnh dịch chuyển hoạt động trên toàn bộ nhớ ngoài thực thi trong 2chu kỳ máy và dùng thanh ghi A làm toán hạng DESTINATION
Việc đọc và ghi RAM ngoài (RD và WR) chỉ tích cực trong suốt quá trình thựcthi của lệnh MOVX, còn bình thường RD và WR không tích cực (mức 1)
● Các lệnh luận lý:
CLR C : Xoá cờ Carry xuống 0 Có ảnh hưởng cờ Carry
CLR BIT : Xoá bit xuống 0 Không ảnh hưởng cờ Carry.
SET C : Set cờ Carry lên 1 Có ảnh hưởng cờ Carry
Trang 14
Trang 12SET BIT : Set bit lên 1 Không ảnh hưởng cờ Carry.
CPL C : Đảo bit cờ Carry Có ảnh hưởng cờ Carry
CPL BIT : Đảo bit Không ảnh hưởng cờ Carry.
ANL C, BIT : Có ảnh hưởng cờ Carry.
ANL C, BIT : Không ảnh hưởng cờ Carry.
ORL C, BIT : Tác động cờ Carry.
ORL C, : Tác động cờ Carry
MOV C, BIT : Cờ Carry bị tác động.
MOV BIT, C : Không ảnh hưởng cờ Carry.
Các bộ định thời được sử dụng hầu hết trong các ứng dụng hướng điều khiển và 8051với các bộ định thời trên chip không phải là trường hợp ngoại lệ 8051 có hai bộ định thời
16 bit, mỗi bộ có 4 chế độ hoạt động Các bộ định thời được dùng để:
Định thời trong một khoảng thời gian
Đếm sự kiện
Tạo tốc độ baud cho port nối tiếp của chip 8051
Thanh ghi TMOD (time mode register) chứa hai nhóm 4-bit dùng để thiết lập chế độhoạt động cho bộ định thời 0 và bộ định thời 1 (xem bảng 4.2 và 4.3) TMOD không đượcđịnh địa chỉ từng bit và điều này cũng không cần thiết Một cách tổng quát, TMOD đượcnạp một lần bởi phần mềm ở thời điểm bắt đầu của một chương trình để khởi động chế độhoạt động của bộ định thời Sau đó bộ định thời có thể được dừng, bắt đầu, v.v… bằng cáchtruy xuất các thanh ghi chức năng đặc biệt khác của bộ định thời
Trang 15
Bit Tên Bộ định thời Mô tả
7 GATE 1 Bit điều khiển cổng khi được set lên 1, bộ định
thời chỉ hoạt động trong khi INT ở mức cao.
4 M0 1 Bit chọn chế độ thứ hai (xem bảng 4.3)
3 GATE 0 Bit điều khiển cổng cho bộ định thời 0
2 C / T 0 Bit chọn chức năng đếm hoặc định thời cho bộ
định thời 0
Bảng: Thanh ghi chọn chế độ định thời
Trang 13b Chế độ timer 16-bit (chế độ 1)
Chế độ 1 là chế độ timer 16 bit giống như chế độ 0, ngoại trừ lúc này timer hoạt độngnhư timer 16 bit đầy đủ Xung nhịp được đưa vào thanh ghi 16 bit được kết hợp bởiTHx và TLx Khi nhận được xung nhịp thì timer đếm lên: 0000H, 0001H, 0002H,v.v… Tràn xảy ra khi có chuyển tiếp từ FFFFH sang 0000H trong số đếm và nó đặt cờbáo tràn timer lên 1 Timer tiếp tục đếm tiếp Cờ báo tràn là bit TFx trong TCON màngười ta có thể đọc hoặc ghi vào bằng phần mềm
c Chế độ timer 8 bit tự nạp lại trị đầu (chế độ 2)
Chế độ 2 là chế độ tự động nạp giá trị đầu Byte thấp của timer TLx làm việc nhưtimer 8 bit trong khi đó byte cao của timer THx giữ giá trị cần nạp lại Khi bộ đếm trnf
từ FFH sang 00H thì không những cờ timer được đặt lên 1 mà giá trị trong THx cònđược nạp vào TLx , việc đếm tiếp tục từ giá trị này đến chuyển tiếp từ FFH sang 00H
kế, và cứ tiếp tục như vậy Chế độ này tiện lợi vì tràn timer xảy ra theo những khoảngthời gian có chu kỳ một khi TMOD và THx đã được khởi tạo trị đầu
d Khởi động, dừng và điều khiển các bộ định thời:
Bit TRx trong thanh ghi TCON được điều khiển bởi phần mềm để bắt đầu hoặc kếtthúc các timer Để bắt đầu các timer ta set bit TRx và để kết thúc timer ta clear TRx Ví
dụ timer được khởi động bởi lệnh SETB TR0 và được kết thúc bởi lệnh CLR TR0 (bitGate=0) Bit TRx bị xóa sau sự reset hệ thống, do đó các timer bị cấm bằng sự mặcđịnh
Thêm phương pháp nữa để điều khiển timer là dùng bit Gate trong thanh ghi TMOD
và ngõ nhập bên ngoài INTx Điều này được dùng để đo các độ rộng xung Giả sử
Trang 16
Bảng: Các chế độ định thời
Trang 14xung đưa vào chân INT0 ta khởi động timer 0 cho mode 1 là mode timer 16 bit vớiTL0/TH0 = 0000H, Gate =1, TR0 =1 Như vậy khi INT0 =1 thì timer “được mở cổng”
và ghi giờ với tốc độ của tần số 1MHz
Khi INT0 xuống mức thấp thì timer “đóng cổng” và khoảng thời gian của xung tínhbằng us là sự đếm được trong thanh ghi TL0/TH0
Phần cứng truy xuất tới Port nối tiếp qua các chân TxD (P3.1) và RxD (P3.0) Portnối tiếp tham dự hoạt động đầy đủ (sự phát và thu cùng lúc), và thu vào bộ đệm mà nócho phép 1 ký tự nhận vào và được cất ở bộ đệm trong khi ký tự thứ hai được nhận vào.Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được nhận vào hoàn toàn thì dữ liệukhông bị mất
Hai thanh ghi chức năng đặc biệt cung cấp cho phần mềm truy xuất đến Port nối tiếp
là SBUF và SCON Sự đệm Port nối tiếp (SBUF) ở địa chỉ 99H là 2 sự đệm thật sự: Ghilên SBUF (nạp dữ liệu phát) và đọc SBUF (truy xuất dữ liệu đã nhận) Đây là
hai thanh ghi riêng biệt và rõ rệt, và thanh ghi phát chỉ ghi còn thanh ghi thu chỉ đọc
Sơ đồ khối của Port nối tiếp như sau:
Trang 17
Trang 15a Thanh ghi điều khiển Port nối tiếp SCON:
Mode hoạt động của Port nối tiếp được set bởi việc ghi lên thanh ghi modecủa Port nối tiếp SCON ở địa chỉ 99H Bảng tóm tắt thanh ghi điều khiển Port nối tiếpSCON như sau:
0 0 0 Thanh ghi dịch Cố định (tần số dao động/12)
0 1 1 UART 8 bit Thay đổi (thiết lập bởi bộ định thời)
1 0 2 UART 9 bit Cố định (tần số dao động /12 hoặc /64)
1 1 3 UART 9 bit Thay đổi (thiết lập bởi bộ định thời)
Trước khi dùng Port nối tiếp, SCON phải được định đúng chế độ VD: Để khởi tạoPort nối tiếp chế độ 1 (SM0/SM1 = 0/1), cho phép thu (REN = 1), và set cờ ngắt của việcphát sẵn sàng hoạt động (TI = 1), ta dùng lệnh sau :
MOV SCON, #01010010H
Port nối tiếp của 8051 có 4 mode hoạt động tùy thuộc theo trạng thái của SM0/SM1
Ba trong 4 mode cho phép truyền động bộ với mỗi ký tự thu hoặc phát sẽ được bố tríbởi bit Start hoặc bit Stop
b Khởi động và truy xuất các thanh ghi Port nối tiếp:
b.1 Cho phép thu:
Bit cho phép thu REN trong thanh ghi SCON phải được set bởi phần mềm để chophép sự thu các ký tự Điều này thường được dùng làm ở đầu chương trình khi cácPort nối tiếp và các timer được khởi động
Trang 18
Bit Ký hiệu Địa chỉ Mô tả hoạt động
SCON.7 SM0 9FH Bit 0 của mode Port nối tiếp
SCON.6 SM1 9EH Bit 1 của mode Port nối tiếp
SCON.5 SM2 9DH Bit 2 của mode Port nối tiếp cho phép sự truyền
của bộ xử lý đa kênh ở mode 2 và 3; RI sẽ khôngtích cực nếu bit thứ 9 đã thu vào là 0
SCON.4 REN 9CH REN = 1 sẽ cho phép thu ký tự
SCON.3 TB8 9BH Phát bit 8 Bit 9 phát trong mode 2 và 3, được set
và xóa bởi phần mềmSCON.2 RB8 9AH Thu bit 8 Bit thứ 9 nhận được
SCON.1 TI 99H Cờ ngắt phát Cờ này được set ngay khi kết thúc
việc phát một ký tự; được xóa bởi phần mềmSCON.0 RI 98H Cờ ngắt thu Cờ này được set ngay khi kết thúc
việc thu một ký tự; được xóa bởi phần mềm
Bảng Các chế độ hoạt động của port nối tiếp
Trang 16Ta có thể tác động bằng lệnh:
SETB REN hoặc:
MOV SCON, # xxx1xxxxB
b.2 Dùng timer tạo tốc độ Baud cho port nối tiếp:
Muốn tạo ra tốc độ Baud, ta khởi tạo TMOD ở chế độ tự nạp lại 8 bit (mode 2của timer) và đặt trước giá trị nạp lại đúng vào byte cao của thanh ghi timer 1 (TH1)
để tạo ra tốc độ tràn chính xác Có những tốc độ Baud rất chậm ta dùng chế độ 16 bit
là chế độ 1 của timer, nhưng ta phải khởi tạo lại sau mỗi lần tràn cho TL1/TH1.Hoạt động khác được đếm giờ bởi việc dùng timer 1 ngoài là T1 (P3.5) Công thứcchung để xác định tốc độ Baud trong mode 1 và mode 3 là:
Trong nhiều ứng dụng đòi hỏi ta phải dùng ngắt (Interrupt) mà không dùng timer bởi
vì nếu dùng timer ta phải mất thời gian để chờ cờ tràn timer TFx set mới xử lý tiếp chươngtrình Do đó ta không có thời gian để làm các việc khác mà ứng dụng đòi hỏi Đây là chươngtrình rất quan trọng của 8051 nói riêng và họ MSC – 51 nói chung
Ngắt là một sự cố có điều kiện mà nó gây ra sự ngưng lại tạm thời của chương trình
để phục vụ một chương trình khác Các ngắt đóng vai trò quan trọng trong việc thiết kế vàhiện thực các ứng dụng của bộ vi điều khiển các ngắt cho phép hệ thống đáp ứng một sựkiện theo cách không đồng bộ và xử lý sự kiện trong
Ví dụ một hoạt động 1200 Baud đòi hỏi một tốc độ tràn là 1200/32 = 38,4 KHz Nếuthạch anh 12MHz lái dao động trên Chip, thì timer 1 được đếm giờ ở tốc độ của tần số 1MHz Bởi vì timer phải tràn ở tốc độ tần số 38,4 KHz và Timer đếm giờ ở tốc độ của tần số
1 MHz, nên một sự tràn được yêu cầu với 1000/38,4 = 26,04 clock (làm tròn 26) Bởi vì cáctimer đếm lên và tràn khi có sự chuyển đổi từ FFH 00H của bộ đếm, nên 26 là giá trị cầnnạp cho TH1 (giá trị đúng là -26) Ta dùng lệnh: MOV TH1, #26
Ví dụ sau khi khởi động Port nối tiếp hoạt động giống như một UART 8 bit ở tốc độ
2400 Baud, dùng timer 1 để cung cấp tốc độ Baud:
MOV SCON, #01010010B ; Port nối tiêp mode 1MOV TMOD, #20 ; Timer 1 mode 2MOV TH1, #-13 ; Nạp vào bộ đếm tốc độ
Trang 19BAUD RATE = TIMER 1 OVERFLOW RATE ÷32
Trang 17Trong SCON có SM0/SM1 để vào mode UART 8 bit, REN = 1 cho phép Port nối tiếpthu các ký tự và TI = 1 cho phép phát ký tự đầu tiên bởi việc cho biết thanh ghi đếm rỗng.TMOD có M1/M0 = 1/0 để đặt timer 1 vào mode tự động nạp lại 8 bit Việc set bit TR1 để
mở máy chạy timer Tốc độ Baud 2400 sẽ cho ta tốc độ tràn timer 1 là 2400/32 = 76,8 KHz(ứng với thạch anh 12 MHz) sẽ cho số xung clock sau mỗi sự tràn là 1000/76,8 = 13,02 (lấytròn là 13) Vậy -13 là giá trị cần nạp vào TH1 để có tốc độ Baud là 2400 Baud
Khi một chương trình khác đang thực thi Một hệ thống được điều khiển bởi ngắt cho
ta ảo tưởng đang làm nhiều công việc đồng thời Tất nhiên CPU không thể thực thi nhiềulệnh tại một thời điểm, nhưng nó có thể tạm thời treo việc thực thi của chương trình chính
để thực thi chương trình khác và sau đó quay lại chương trình chính
Khi chương trình chính đang thực thi mà có một sự ngắt xảy đến thì chương trìnhchính ngưng thực thi và rẽ nhánh đến thủ tục phục vụ ngắt ISP (Interrupt Service Routine).ISR thực thi để thực hiện hoạt động và kết thúc với lệnh RETI: chương trình tiếp tục nơi mà
nó dừng lại
Ta có thể tóm tắt sự thực thi của 1 chương trình trong trường hợp có ngắt và không
có ngắt như sau:
Trang 20
Trang 18Trong đó ký hiệu * cho biết ngắt chương trình chính để thực thi chương trình controng thủ tục phục vụ ngắt ISR Còn ký hiệu ** cho biết việc quay lại chương trình chínhthực thi tiếp sau khi kết thúc chương trình con trong ISR.
1 Tổ chức ngắt của 8051
8051 cung cấp 5 nguồn ngắt, 2 ngắt ngoài, 3 ngắt timer và một ngắt Port nối tiếp tất
cả các ngắt bị mất tác dụng bởi sự mặc định sau khi reset hệ thống và được cho phép cábiệt bởi phần mềm
Trong trường hợp có hai hoặc nhiều hơn sự ngắt xảy ra đồng thời hoặc một sự ngắtđang được phục vụ mà xuất hiện một sự ngắt khác, thì sẽ có hai cách thực hiện sự ngắt là
sự kiểm tra liên tiếp và sự ưu tiên cấp 2
1.1 Sự cho phép ngắt và sự cấm ngắt:
Mỗi nguồn ngắt được cho phép riêng biệt hoặc sự cấm riêng biệt qua thanh ghi chứcnăng đặc biệt có bit định vị IE (Interrupt Enable) tại địa chỉ 0A8H Cũng như sự cá biệtcho phép các bit của mỗi nguồn ngắt có 1 bit cho phép (hoặc cấm) chung mà nó có đượcxóa để cấm tất cả các ngắt hoặc được set để cho phép chung các ngắt
Hoạt động của từng bit trong thanh ghi cho phép ngắt IE được tóm tắt trong bảng
sau:
Trang 21
Bit Symbol Bit Address Sự mô tả (Enable=1; Disable)
IE.7 EA AFH Cho phép ngắt toàn cục
IE.6 - AEH Không định nghĩa
IE.5 ET2 ADH Cho phép ngắt timer 2 (8052)
IE.4 ES ACH Cho phép ngắt Port nối tiếp
IE.3 ET1 ABH Cho phép ngắt timer 1
IE.2 EX1 AAH Cho phép ngắt ngoài External 1
IE.1 ET0 A9H Cho phép ngắt timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài External 0
Timer
Thục thi chương trình có ngắt
Trang 19Hai bit phải set để cho phép 1 sự ngắt nào đó: là bit cho phép riêng và bit cho phépchung Ví dụ để cho phép ngắt timer 1 ta có thể thực hiện trên bit:
SETB ET1 và SETB EA hoặc sự thực hiện trên byte:
2 Xử lý các ngắt
Khi một ngắt xuất hiện và được chấp nhận bởi CPU thì chương trình chính bị ngắt Các hoạt động sau đây xuất hiện:
Lệnh hiện hành và kết thúc thực thi
Bộ đếm chương trình PC được cất giữ vào Stack
Trạng thái ngắt hiện hành được cất giữ vào bên trong
Những sự ngắt bị ngăn lại tại mức ngắt
Bộ đếm chương trình PC được LOAD với địa chỉ vectơ của thủ tục phục vụ ngắt ISR
Trang 22
Bảng: Chức năng của thanh ghi IE
Trang 20 Thủ tục phục vụ ngắt ISR được thực thi.
Thủ tục phục vụ ngắt ISR thực thi và đưa hoạt động vào đáp ứng ngắt, thủ tục phục vụngắt ISR kết thúc với lệnh RETI (quay trở về chương trình chính từ Stack) Điều này khôiphục lại giá trị của bộ đếm chương trình từ Stack và hoàn toàn dừng lại trạng thái cũ Sựthực thi của chương trình chính tiếp tục ở nơi mà nó ngừng lại
- GIỚI THIỆU AT89S52
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự nhưnhau Ở đây giới thiệu IC89S52 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất.Chúng có các đặc điểm chung như sau:
Các đặc điểm của 89S52 được tóm tắt như sau :
8 KB EPROM bên trong
128 Byte RAM nội
4 Port xuất /nhập I/O 8 bit
Có khả năng giao tiếp truyền dữ liệu nối tiếp
Có thể giao tiếp với 64 KB vùng nhớ bên ngoài dùng lưu chương trình điều khiển
Có thể giao tiếp với 64 KB vùng nhớ bên ngoài dùng lưu dữ liệu Xử lí Boolean(hoạt động trên bit đơn)
Có 210 vị trí nhớ có thể định vị bit
Trang 23
Trang 21- Chức năng các chân của 89S52:
Vi điều khiển 89S52 có tất cả 40 chân có chức năng như các đường xuất nhập Trong
đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt độngnhư đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và busđịa chỉ
• Port 0 : Port 0 là port có 2 chức năng ở các chân 32 - 39 của 89S52 Trong
các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như cácđường IO Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợpgiữa bus địa chỉ và bus dữ liệu
• Port 1: Port 1 là port IO trên các chân 1-8 Các chân được ký hiệu P1.0,
P1.1, P1.2, … có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với cácthiết bị bên ngoài
• Port 2: Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như
các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng
Trang 24
Trang 22bộ nhớ mở rộng.
• Port 3: Port 3 là port có tác dụng kép trên các chân 10 - 17 Các chân của
port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặctính đặc biệt của 89S52 như ở bảng sau:
Các ngõ tín hiệu điều khiển:
- Ngõ tín hiệu PSEN (Program store enable):
Trang 25
Ngõ vào của TIMER/COUNTERthứ
0.
Ngõ vào của TIMER/COUNTER thứ
1.
P 3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P 3.7 RD\ Tín hiệu đọc bộ nhớ dữliệu ngoài
Trang 23PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình
mở rộng thường được nói đến chân 0E\ (output enable) của Eprom cho phép đọc các byte mãlệnh
PSEN ở mức thấp trong thời gian Microcontroller 89S52 lấy lệnh Các mã lệnh củachương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong89S52 để giải mã lệnh Khi 89S52 thi hành chương trình trong ROM nội PSEN sẽ ở mứclogic 1
- Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
Khi 89S52 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữliệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30 dùng làmtín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt
Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địachỉ thấp nên chốt địa chỉ hoàn toàn tự động
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thểđược dùng làm tín hiệu clock cho các phần khác của hệ thống Chân ALE được dùng làm
ngõ vào xung lập trình cho Eprom trong 89S52
- Ngõ tín hiệu EA\(External Access):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0 Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte Nếu ở mức 0, 89S52 sẽ thi hành chương trình từ bộ nhớ mở rộng ChânEA\ được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52
- Ngõ tín hiệu RST (Reset) :
Ngõ vào RST ở chân 9 là ngõ vào Reset của 89S52 Khi ngõ vào tín hiệunày đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạpnhững giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự độngReset
- Các ngõ vào bộ dao động X1, X2:
Bộ dao động được tích hợp bên trong 89S52, khi sử dụng 89S52 người thiết kếchỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ Tần sốthạch anh thường sử dụng cho 89S52 là 12Mhz
Trang 26
Trang 24Trang 27
Trang 25Trang 28
Trang 261 PHÂN TÍCH CƠ CỞ GIAO TIẾP MÁY TÍNH.
Máy tính là thiết bị trợ giúp đặc biệt cho con người ở các lĩnh vực văn phòng, đồ hoạ, lập trình.v.v Khoa học kỹ thuật ngày càng phát triển thì máy tính trở nên rấtcần thiết và hữu ích Chính vậy, máy tính được đưa vào ứng dụng rất nhiều trong cuộc sốngđặc biệt trong lĩnh vực kỹ thuật Những ứng dụng mạnh nhất của máy tính trong kĩ thuật là thuthập dữ liệu từ thiết bị ngoại vi và điều khiển các quá trình hoạt động của hệ thống một cách tựđộng theo chương trình mà con người định sẳn
Máy tính giao tiếp với các thiết bị ngoại vi theo các cách sau:
- Giao tiếp qua rãnh cắm của máy tính (Slot Card)
- Giao tiếp máy tính qua cổng song song (LPT)
- Giao tiếp máy tính qua cổng nối tiếp (COM)
- Giao tiếp máy tính qua cổng USB
Trong máy tính, trên main board hoặc IO-card, thường chế tạo sẵn các rãnh cắm (slot)cho phép mở rộng bộ nhớ, cài đặt thêm phần cứng, mở rộng phạm vi ứng dụng cho máy tính
Mỗi khe cắm có các đường dữ liệu, đường địa chỉ, đường nguồn và các đườngđiều khiển như :CLK, IRQ, DMA…Do đó, nếu thiết kế giao tiếp qua Slot sẽ giảm được bộnguồn bên ngoài, làm giảm giá thành Tuy nhiên bên cạnh đó, Slot đòi hỏi người thiết kếphải nắm vững phần cứng của máy tính Giao tiếp qua Slot giới hạn khoảng cách làm việc
Vài nét cơ bản về cổng ghép nối máy in (cổng song song)
Cổng máy in hay thường gọi là giao diện Centronics, việc nối với cổng máy in, máytính được thực hiện thông qua ổ cắm 25 chân ở phía sau máy tính Nhưng đây không chỉ làchỗ nối với máy in mà khi sử dụng vào mục đích đo lường và điều khiển thì việc ghép nốicũng có thể thực hiện qua ổ cắm này Qua cổng này dữ liệu được truyền đi song song, do vậytốc độ truyền dữ liệu cũng đạt đến mức đáng kể Tất cả các đường dẫn của cổng máy in đềutương thích với TTL Chính sự tương thích này giúp cho việc giao tiếp trở nên đơn giản và
dễ dàng hơn Nghĩa là chúng đều cung cấp mức điện áp nằm giữa 0V đến 5V
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
29
Trang 27Do đó ta cần lưu ý là các đường dẫn vào cổng này không được đặt mức điện áp quálớn Vì vậy khi ta tiến hành ghép nối chúng với nhau ta phải chú ý tới những qui tắc an toànsau:
- Chỉ được ghép nối khi máy tính đang ở trạng thái ngắt điện
- Các lối vào chỉ được phép tiếp nhận điện áp giữa 0V và 5 V
- Các lối ra không được phép ngắn mạch hoặc đấu nối với các ngõ ra
khác và các lối ra không được phép nối với các nguồn tín hiệu điện áp
không biết rõ thông số
- Cổng máy in trong máy tính được ký hiệu bằng LPT1 hoặc LPT2, có
tổng cộng 17 đường dẫn dữ liệu số: bao gồm có 12 đường dẫn ra và 5 đường
dẫn vào
Các đường dẫn dữ liệu từ D0 - D7 là những đường dẫn một chiều, và là đường dẫn ra.Các đường tín hiệu vào, ra có chốt
Sơ đồ chân của cổng máy in được mô tả như sau:
Sơ đồ chân cổng máy in( Jack đực)
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
30
Trang 28Các chân và đường dẫn được mô tả như sau:
Chức năng các chân của cổng song song
Do cổng máy in có 5 đường dẫn lối vào, nhờ vậy mà việc bắt tay giữa máy tính vàcác thiết bị ngoại vi được thực hiện Trong 17 đường dẫn tín hiệu thì có 5 vào, vì vậy việcbắt tay giữa máy tính và máy in được thực hiện, chẳng hạn như khi máy in không còn đủ chỗtrống trong bộ nhớ thì nó đưa đến máy tính một trạng thái (BUSY =1) tức là báo máy in đangbận không nên gởi dữ liệu ra nữa
Sự trao đổi với các đường dẫn tín hiệu:
Các đường dẫn tín hiệu của cổng máy in được sắp xếp thành 3 thanh ghi: Thanh ghi
dữ liệu, thanh ghi trạng thái và thanh ghi điều khiển Thông qua 3 thanh ghi này cho phéptrao đổi thông tin giữa môi trường ngoài và bộ nhớ máy tính
Muốn truy xuất dữ liệu qua cổng máy in thì ta phải biết được địa chỉ cơ bản của cácthanh ghi dữ liệu gọi là địa chỉ cơ bản của cổng máy in
Cổng máy in LPT1 có địa chỉ cơ bản là 378Hex và cổng LPT2 có địa chỉ cơ bản là278Hex
Địa chỉ thanh ghi dữ liệu với địa chỉ cơ bản của cổng máy in 378h Địa chỉ thanh ghitrạng thái là 379h
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
31
Trang 29Địa chỉ thanh ghi điều khiển là 37Ah
- Thanh ghi dữ liệu: gồm có 8 bit dữ liệu, có địa chỉ là 378h Thanh ghi dữ liệu (Data
register, địa chỉ = địa chỉ cơ bản )
Thanh ghi dữ liệu
- Thanh ghi trạng thái: có địa chỉ là 379h
Thanh ghi trạng thái(status register, địa chỉ = địa chỉ cơ bản +1)
Thanh ghi điều khiển : có địa chỉ là 37AH
Thanh ghi điều khiển(control register, địa chỉ = địa chỉ cơ bản + 2
Thanh ghi điều khiển
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
32
Trang 30thấy có thể sử dụng thanh ghi data là thanh ghi phát, có nhiệm vụ truyền dữ liệu ra ngoài, vàthanh ghi điều khiển sẽ gởi tín hiệu điều khiển cho Kit, còn thanh ghi trạng thái sẽ nhận tínhiệu báo trạng thái hiện tại của thiết bị về máy tính
Giao tiếp qua cổng COM được sử dụng khá phổ biến Dữ liệu truyền ở cổng này thuộcdạng dữ liệu nối tiếp Tín hiệu truyền ở cổng này có thể truyền đi xa nhờ có cấu tạo đườngdây cáp ít sợi hơn cổng song song, mức áp tín hiệu cao
Cổng COM có loại 9 chân và loại 25 chân như cổng song song, có tổng cộng 8 đườngdẫn tín hiệu không kể đường nối đất
Cổng COM giao tiếp theo chuẩn RS-232 và thường được sử dụng để giao tiếp giữamáy tính và Modem hoặc giao tiếp với Mouse Dữ liệu được truyền dưới dạng nối tiếp vớitốc cực đại là 20Kbps, khoảng cách tối đa không quá 15m
Chiều dài của dữ liệu có thể dài bất kì nhưng thông thường trong 1byte chỉ dài 7 đến
8 bit kết hợp các bit xuất phát(Start bit) và bit dừng(Stop bit), Parity bit tạo thành mộtFrame Các thiết bị phát và nhận phải có cùng độ dài dữ liệu Ngoài các đường dữ liệu, cổnggiao tiếp này còn có các đường điều khiển thu phát và kiểm tra lỗi
3.1 Cấu trúc cổng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, cócác ưu điểm sau:
- Khoảng cách truyền xa hơn truyền song song
- Số dây kết nối ít
- Có thể truyền không dây dùng hồng ngoại
- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device)
- Cho phép nối mạng
- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc
- Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE(Data Communication Equipment) DCE là các thiết bị trung gian như MODEM còn DTE làcác thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển,… Việc trao đổitín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền) Các tín hiệu còn lại có chứcnăng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệu bắt tay(handshake)
Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đường truyền SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
33
Trang 31Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic 0ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA.Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáptruyền đủ ngắn có thể lên đến 115.200 bps
Các phương thức nối giữa DTE và DCE:
- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng
- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm chỉ được truyền theo 1 hướng
- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:
Các đặc tính kỹ thuật của chuẩn RS-232 như sau:
Chiều dài cable cực đại 15mTốc độ dữ liệu cực đại 20 KbpsĐiện áp ngõ ra cực đại ± 25VĐiện áp ngõ ra có tải ± 5V đến ± 15VTrở kháng tải 3K đến 7KĐiện áp ngõ vào ± 15V
Độ nhạy ngõ vào +3VTrở kháng ngõ vào 3K đến 7K
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
34
Trang 32bps và 19200 bps.
Sơ đồ chân:
Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả như hình trên Ý nghĩa của các chân mô tả như sau:
vệ
truyền
23 - DSRD DCE→DTE Data signal rate detector: dò
tốc độ truyền
Timing: tín hiệu định thờitruyền đi từ DTE
15 - TSET DCE→DTE Transmitter Signal Element
Timing: tín hiệu định thời truyền từ DCE để truyền dữ liệu
Timing: tín hiệu định thờitruyền từ DCE để truyền
dữ liệu
DCE khi tín hiệu nhận từ DCE lỗi
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
35
Trang 33a mô tả:
Việc truyền thông nối tiếp trên Windows được thực hiện thông qua một ActiveX cósẵn là Microsoft Comm Control ActiveX này dược lưu trữ trong file MSCOMM32.OCX.Quá trình này có hai khả năng thực hiện điều khiển trao đổi thông tin:
- Điều khiển sự kiện:
Truyền thông điều khiển sự kiện là phương pháp tốt nhất trong quá trình điềukhiển việc trao đổi thông tin Quá trình điều khiển thực hiện thông qua sự kiệnOnComm
- Hỏi vòng:
Quá trinh điều khiển bằng phương pháp hỏi vòng thực hiện thông qua kiểm tra cácgiá trị của thuộc tính CommEvent sau một chu kỳ nào đó để xác định xem có sự kiện nàoxảy ra hay không Thông thường phương pháp này sử dụng cho các chương trình nhỏ
ActiveX MsComm được bổ sung vào một Visual Basic Project thông qua menuProject > Components:
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
36
Trang 34SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
37
Trang 35b Các thuộc tính
- Settings:
Xác định các tham số cho cổng nối tiếp Cú pháp:
MSComm1.Settings = ParamString MSComm1: tên đối tượng
ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S"
BBBB: tốc độ truyền dữ liệu (bps) trong đó các giá trị hợp lệ là:
110 2400 38400
300 9600 56000
600 14400 188000
1200 19200 256000P: kiểm tra chẵn lẻ, với các giá trị
Giá trị Mô tả
O Odd (kiểm tra lẻ)
E Even (kiểm tra chẵn)
M Mark (luôn bằng 1)
S Space (luôn bằng 0)
N Không kiểm tra
D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit S: số bit stop (1, 1.5, 2)
VD:
MSComm1.Settings = "9600,O,8,1" sẽ xác định tốc độ truyền 9600bps, kiểm traparity chẵn với 1 bit stop và 8 bit dữ liệu
- CommPort:
Xác định số thứ tự của cổng truyền thông, cú pháp:
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
38
Trang 36PortNumber là giá trị nằm trong khoảng từ 1 → 99, mặc định là 1 VD:
MSComm1.CommPort = 1 xác định sử dụng COM1
- PortOpen:
Đặt trạng thái hay kiểm tra trạng thái đóng / mở của cổng nối tiếp Nếu dùngthuộc tính này để mở cổng nối tiếp thì phải sử dụng trước 2 thuộc tính Settings vàCommPort Cú pháp:
MSComm1.PortOpen = True | False Giá trị xác định là True sẽ thực hiện mở cổng và False để đóng cổng đồngthời xoá nội dung của các bộ đệm truyền, nhận
VD: Mở cổng COM1 với tốc độ truyền 9600 bps
MSComm1.Settings = "9600,N,8,1" MSComm1.CommPort = 1 MSComm1.PortOpen = True
- Các thuộc tính nhận dữ liệu:
Input: nhận một chuỗi ký tự và xoá khỏi bộ đệm Cú pháp: InputString =
MSComm1.Input
Thuộc tính này kết hợp với InputLen để xác định số ký tự đọc vào Nếu InputLen =
0 thì sẽ đọc toàn bộ dữ liệu có trong bộ đệm
VD: Đọc toàn bộ nội dung trong bộ đệm nhận nếu có dữ liệu MSComm1.InputLen = 0
If MSComm1.InBufferCount <> 0 Then
InputString = MSComm1.Input End If
- Các thuộc tính xuất dữ liệu:
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
39
Trang 37của các thuộc tính này giống như các thuộc tính nhập
- CDTimeout:
Đặt và xác định khoảng thời gian lớn nhất (tính bằng ms) từ lúc phát hiện sóngmang cho đến lúc có dữ liệu Nếu quá khoảng thời gian này mà vẫn chưa có dữliệu thì sẽ gán thuộc tính CommEvent là CDTO (Carrier Detect Timeout Error)
và tạo sự kiện OnComm Cú pháp:
Đặt hay xoá tín hiệu DTR để báo sự tồn tại của DTE
Cú pháp: MSComm1.DTREnable = True | False
- RTSEnable:
Đặt hay xoá tín hiệu RTS để yêu cầu truyền dữ liệu đến DTE
Cú pháp: MSComm1.RTSEnable = True | False
- NullDiscard:
Cho phép nhận các ký tự NULL (rỗng) hay không (= True: cấm)
Cú pháp: MSComm1.NullDiscard = True | False
Trang 38Chọn giao thức bắt tay khi thực hiện truyền dữ liệu Cú pháp:MSComm1.HandShaking = Protocol
Các giao thức truyền bao gồm:
ComNone 0 Không băt tay (mặc định)ComXon/Xoff 1 Bắt tay phần mềm (Xon/Xoff)ComRTS 2 Bắt tay phần cứng (RTS/CTS)ComRTSXon/Xoff 3 Bắt tay phần cứng và phànmềm
ComEvReceive 2 Khi có ký tự trong bộ đệm nhận
ComEvCTS 3 Có thay đổi trên CTS (Clear To Send) CóComEvDSR 4 Có thay đổi trên DSR (Data Set Ready)CóComEvCD 5 Có thay đổi trên CD (Carrier Detect)ComEvRing 6 Phát hiện chuông
ComEvEOF 7 Nhận ký tự kết thúc file
Chọn phương án giao tiếp qua cổng nối tiếp
Truyền nối tiếp thì có khả năng dùng cho những khoảng cách lớn,
khả năng gây nhiễu là nhỏ đáng kể so với dùng cổng song song
Khi truyền port nối tiếp mức logic 1 có điện áp từ -3 đến -15V và
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
41
Trang 39song song thì mức logic 0 tương ứng 0V còn 5V tương ứng
mức logic 1 Cho nên ở port nối tiếp có thể có biên độ giao
động tối đa là 30V so với port song song tối đa chỉ có 5V Vì
vậy mức tín hiệu của truyền song song trong khoảng 0 ÷ 5V
không tương thích với khoảg cách truyền lớn Khi truyền dữ liệu
nối tiếp thì không tốn đường dây dẫn so với truyền song song Để
thực hiện giao thức truyền nối tiếp bất đồng bộ thì ta cần phải có
các vi mạch UART và bộ phận điều khiển trung tâm Tuy nhiên
do vi điều khiển AT89S52 đã tích hợp sẵn một bộ UART, để
thực hiện việc giao tiếp nên nhóm thực hiện đã chọn vi điều
khiển để giao tiếp với máy tính Do mức logic của cổng COM
không phù hợp với mức TTL của vi điều khiển AT89S52 nên ta
cần phải có vi mạch kích thu, kích phát đường truyền Vì vậy,
RS-232 sử dụng phương thức truyền không đối xứng, tức là sử dụng tín hiệu chênhlệch giữa một dây dẫn với đất Mức điện áp được sử dụng dao động trong khoảng từ -15Vtới 15V Trong khoảng từ 3V đến 15V ứng với giá trị logic 0, khoảng từ -15V đến -3V ứngvới giá trị logic 1
Chính vì từ -3V đến 3V là phạm vi không được định nghĩa, trong trường hợp thayđổi giá trị từ logic 0 lên 1 hoăc từ 1 tới 0 một phải vượt qua khoảng qúa độ trong thời gianngắn hợp lý
Tốc độ truyền dẫn đa số phụ thuộc vào chiều dài dây dẫn Đa số các hệ thống hiệnnay chỉ hỗ trợ tốc độ 19.2 kBd ( chiều dài cho phép từ 30m đến 50m) gần đây, sự tiến bộtrong vi mạch đã góp phần nâng cao tốc độ của các modem lên nhiều lần ngưỡng 19.2 kBd.Hiện nay đã có những vi mạch thu phát tốc độ 460 kBd và hơn nữa, tuy nhiên tốc độ thực tếlớn hơn 115.2 kBd theo chuẩn RS-232 trong một hệ thống làm việc dựa vào ngắt là một điềukiện có thể thực hiện
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
42
Trang 40gia có thề thu và phát tín hiệu cùng một lúc Như vậy, việc thực hiện truyền thông cần tốithiểu 3 dây dẫn trong đó có hai dây tín hiệu nối chéo nhau các đầu thu phát của hai trạm vàmột dây đất
Một ưu điểm của chuẩn RS-232 là có thề sử dụng công suất phát tương đối thấp, nhờtrở kháng đầu vào hạn chế trong phạm vi từ 3-7kΩ
Điện áp đầu ra khi có tải 3KΩ ≤RL≤7KΩ 5V 15V
Trở kháng đầu vào khi cắt nguồn -2V≤V0≤2V 300Ω
Trở kháng đầu vào 3V≤VI ≤25V 3KΩ 7KΩ
Điện áp thay đổi từ 5V đến 10V được thay đổi nhờ sự bơm điện Đầu tiên tụ C1 sẽbơm điện áp từ 5V đến 10V và để lưu trữ điện áp 10V cho tụ C1 thì tụ C3 có vai trò là lưutrữ điện áp 10V ở ngõ ra.Thứ hai sử dụng tụ C2 là để biến đổi từ 10V sang -10V và để lưutrữ điện áp -10V thì tụ C4 có vai trò lưu trữ điện áp -10V ở ngõ ra
SVTH : Phạm Ngọc Dũng- Đặng Văn Trung Trang
43