Theo chủng loại, mức độ điều khiển, và khả năng nhận biết thông tin của tay máy - người máy đã được sản xuất trên thế giới có thể phân loại các IR thành các thế hệ sau: Thế hệ 1 : thế h
Trang 2
Trường ĐHDL Kỹ Thuật Công Nghệ Độc Lập - Tự Do - Hạnh Phúc
Khoa Cơ Khí Tự Động — Robot
Xây dựng hệ thống diéu khién Catersian
2- Nhiệm vụ ( yêu cầu về nội dung và số liệu ban đầu ) :
1 Tìm hiểu, thiết kế cải tiến mạch vi xử lý và chương trình điểu khiển hoạt động động cơ
bc
2 XAy dung hé thong diéu khién tru : X, Y, Z, A ca Robot Castersian
3 Xây dựng chương trình điểu khiển hoạt động gồm các yêu cầu : Các chức năng điều khiển robot, giao diện thân thiện dễ sử dụng, mô phỏng hoạt động, giao tiếp dữ liệu,
khả năng soạn thảo chương trình NC
4 Xây dựng hệ mã lệnh điểu khiển robot
5 Xây dựng các chương trình chuẩn cho robot hoạt động, bao gồm :
a) Điều khiển điểm : Chấm điểm, vẽ hình vuông, hình chữ nhật
b) Điều khiển đường : Đường tròn, conic
3- Ngày giao nhiệm vụ đỒ án : ScccSettttekexerrersrreecee
4-_ Ngày hoàn thành nhiệm vụ : - - SH nhàn
5- Họ tên người hướng dẫn :
—
CHỦ NHIỆM KHOA NGƯỜI HƯỚNG DẪN CHÍNH
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)
Trang 3
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TPHCM
KHOA CƠ KHÍ TỰ ĐỘNG - ROBOT CHUYÊN NGÀNH CƠ TIN KỸ THUẬT
-ooOoo -
NHẬN XÉT LUẬN VĂN TỐT NGHIỆP CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên sinh viên : TRAN HOANG VI
Ngành : CƠ TIN KỸ THUẬT
Khóa : 2000 — 2005
Lớp : 00ĐCT2
GIÁO VIÊN HƯỚNG DẪN: TH.S TRẦN ĐÌNH HUY
Nhận Xét Của Giáo Viên Hướng Dẫn :
Giáo viên hướng dẫn
Trang 4
LỜI CẢM TẠ
T ập đồ án được hoàn thành như là một bước ngoặt báo hiệu kết thúc thời
gian học tập tại trường ĐH Kỹ Thuật Công Nghệ TPHCM Nếu không có
sự đóng góp về nhiều phía chắc chắn người thực hiện dễ tài này khó mà
đạt được những kết quả sau 5 năm học đại học
Đó là sự đóng góp tích cực về vật chất, sự ủng hộ động viên tinh thần về
phía nhà trường của khoa Cơ Khí Tự Động, Robot —- đặc biệt là sự đôn đốc,
nhắc nhở của thầy TRẦN ĐÌNH HUY Em sẽ mãi mãi ghi nhớ
Trong số kiến thức mà em đạt được có sự đóng góp của nhiều thầy cùng
với sự giúp đỡ, những lời động viên đúng lúc trong khi học và trong thời gian
thực hiện để tài của các bạn sinh viên Khóa 2000 ĐCT, có lẽ em không thể
nào quên
Ngày 26 tháng 12 năm 2004 Sinh Viên Thực Hiện
TRẦN HOÀNG VI
Trang 1
Trang 5
LOI NOI DAU
T rong những năm gần đây theo sự tiến bộ của khoa học kỹ thuật, công cuộc
công nghiệp hóa hiện đại hóa đất nước đang diễn ra khá tốt đẹp Trước
tình hình đó đã có khá nhiều yêu cầu cấp bách và cũng là những thách
thức được đặt ra cho giới trí thức
Tay máy công nghiệp là một lĩnh vực mới mà ở Việt Nam đang nghiên
cứu và từng bước chế tạo để ứng dụng vào quá trình sản xuất góp phần nâng cao năng xuất lao động
Kỹ thuật vi xử lí rất ưu việt đã trở nên rất cần thiết trong ngành điện tử,
nó đã thay thế các thiết bị có cấu tạo phức tạp thành đơn giản Ứng dụng vi xử
lí rất rộng rải từ máy móc quan trọng trong nền công nghiệp đến các thiết bị
chuyên dùng
Với các ưu điểm về các chỉ tiêu kỹ thuật và tính linh hoạt của vi xử H,
việc nghiên cứu và ứng dụng vi xử lí rất cần thiết
Không nên dừng lại ở cách sử dụng, cách tốt nhất để hiểu rỏ thiết bị mới
và đi sâu vào tìm hiểu bản chất hoạt động bên trong của thiết bị đó Thực hiện
dé tai: “THIET KE VA THI CONG HỆ THONG DIEU KHIEN ROBOT
CASTERSIAN ” như là một cách để thể hiện một phần trong những kiến thức
mà em đã đạt được sau 5 năm học tập tại trường
Do có sự hạn chế về thời gian cũng như kiến thức và kinh nghệm nên
không tránh khỏi những sai sót
Ngày 26 Tháng 12 Năm 2004
Sinh Viên Thực Hiện
TRẦN HOÀNG VI
Trang 2
Trang 6
CHUONG 1
Trang 7
1.1 ĐẶT VẤN ĐỀ
Sự phát triển của khoa học kỹ thuật ngày càng nhanh góp phần nâng cao năng suất lao động Đặt biệt sự ra đời và phát triển của công nghệ chế tạo
Robot nhằm tạo ra sự tự động hóa trong quá trình sản xuất giảm ởi sức lao
động bằng chân tay của người lao động
Đối với các nưước ngoài thì Robot đã được nghiên cứu và chế tạo để ứng
dụng vào sản suất đả có từ trước Riêng ở nước ta lĩnh vực này còn khá mới
mẽ Tuy có sự đầu tư để nghiên cứu nhưng còn hạn chế ,có thể dùng mô hình
cánh tay máy để phục vụ trực tiếp cho công việc giảng dạy tại trường nhằm
giúp cho sinh viên hiểu rỏ hơn về lý thuyết, tạo điều kiện cho việc dạy và học
được sinh động hơn
Bức xúc trước nhu cầu tìm hiểu về tay máy công nghiệp từ chính bản
thân và của những người yêu thích về lĩnh vực này, em đã bắt tay vào việc thực hiện nghiên cứu để tài: "THIET KE VA THI CONG HE DIEU KHIEN ROBOT CASTERSIAN" -
1.2 TAM QUAN TRONG CUA VAN DE
Ở Việt Nam nói chung công nghệ chế tạo tay máy còn chậm phát triển,
chúng ta vẩn chưa có nhà máy nào có khả năng chế tạo các bộ phận cấu thành
của tay máy đạt tiêu chuẩn quốc tế Tận dụng những vật liệu có sẵn để gia
công các chỉ tiết cơ khí cũng như linh kiện , thiết bị điện có sẵẳn do nước ngòai sản suất để thiết kế thành những sản phẩm cụ thể trước hết là ứng dụng làm
phương tiện giảng dạy trong trường học và từ đó phát triển cao hơn để ứng dụng vào trong sản suất đã và đang là hướng đi đúng đắng của các kỹ sự 3 Việt Nam Dé tai “THIẾT KẾ VÀ THI CONG HỆ ĐIỀU KHIỂN
ROBOT CASTERSIAN"' không nằm ngoài nhận định trên Điểu quan trọng
hơn hết là các vấn đề liên quan đến cấu tạo, nguyên lý hoạt động của tay máy
và phần lý thuyết về các hoạt động xảy ra bên trong vi xử lí sẽ được giới thiệu
trong để tài này Nó sẽ là nguồn thông tin hửu ích cho những ai muốn tìm hiểu
về lĩnh vực này
1.3 GIỚI HẠN VẤN ĐỀ
Tay máy rất đa dạng về nguồn gốc và chủng loại đây là lần đầu thực hiện nghiên cứu để tài: "THIẾT KẾ VÀ THỊ CÔNG HỆ ĐIỀU KHIỂN ROBOT CASTERSIAN" trong diéu kién:
e Kinh nghiém thuc té chua c6 nhiéu
e Tai liệu về vi xử lí và tay máy còn hiếm
Vì vậy em đã thực hiện nghiên cứu đề tài với những đặc điểm chính sau đây:
e© Lập trình bằng KTT vi xử lí 8051
e Thiết kế mạch điều khiển cánh tay máy
Trang 4
Trang 8
e_ Xây dựng chương trình điểu khiển bằnh ngôn ngữ VB
1.4 MỤC ĐÍCH NGHIÊN CỨU ;
Thực hiện để tài “THIẾT KẾ VÀ THỊ CONG HE DIEU KHIEN
ROBOT CASTERSIAN"' là một công việc để người thực hiện để tài nghiên cứu kỹ khái niệm mô hình, nguyên lý làm việc cũng như tập lệnh của vi xử lí
Sản phẩm của để tài trước hết có thể được ứng dụng vào phương tiện
giảng dạy tại trường; và nếu được phát triển rộng, đi sâu hơn thì có thể ứng dụng vào trong thực tế sản xuất công nghiệp,và đặc biệt cung cấp một cái nhìn tổng quát về vi xử lí và tay máy công nghiệp
Trang 5
Trang 9
CHƯƠNG 2
Trang 102.1 DÀN Ý NGHIÊN CỨU
e_ Giới thiệu tổng quát về tay máy
e Thiết kế mạch điều khiển cánh tay máy
e Xây dựng phần mềm
e Thi céng
e Hướng dẫn thao tác
2.2 ĐỐI TƯỢNG NGHIÊN CỨU
Chủ yếu là mô hình cánh tay máy được gia công
2.3 PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN NGHIÊN CỨU
e Ngoai KIT vi xử lí 8051 và mô hìmh cánh tay máy, máy tính, mạch điện
công suất, và một số phương tiện sẵn có
2.4 THỜI GIAN NGHIÊN CỨU
Thực nghiên cứu để tài từ ngày đăng ký để tài, công việc được phân bố
Trang 11
CHƯƠNG 3
Trang 8
Trang 123.1 LỊCH SỬ PHÁT TRIỂN
Thuật ngữ ROBOT xuất hiện vào năm 1920 trong một tác phẩm văn
học của nhà văn Tiệp Khắc có tên Karel Capek
Thuật ngữ Inducstrial Robot (IR) - xuất hiện đầu tiên ở Mỹ do céng ty AMF (American Manchine and Foundry company) quang cdo mé tả
một thiết bị mang dáng dap và có một số chức năng như tay người được điều
khiển tự động để thực hiện một số thao tác sản xuất thiết bị có tên gọi
Versatran
Quá trình phát triển của IR có thể tóm tắt như sau:
- Từ những năn 50 ở Mỹ xuất hiện viện nghiên cứu đầu tiên
- Đang đầu những năm 60 xuất hiện sản phẩm đầu tiên tên Versatran
- Châu Á có Nhật bắt đầu nghiên cứu ứng dụng IR từ năm 1968
Đến nay trên thế giới có khoảng trên 20 công ty sản xuất IR trong số đó
có 80 công ty của Nhật , 90 công ty của các nước Tây Âu, 30 công ty của Mỹ
và một số công ty ở Nga, Tiệp
Theo chủng loại, mức độ điều khiển, và khả năng nhận biết thông tin của tay máy - người máy đã được sản xuất trên thế giới có thể phân loại các
IR thành các thế hệ sau:
Thế hệ 1 : thế hệ có kiểu điều khiển theo chu trình dạng chương trình
cứng không có khả năng nhận biết thông tin
Thế hệ 2 : thế hệ có kiểu điều khiển theo chu kì dạng chương trình mềm bước đầu đa có khả năng nhận biết thông tin
Thế hệ 3 : thế hệ có kiểu điều khiển dạng tinh khôn ,có khả năng nhận biết thông tin và bước đầu đã có một số chức năng lý trí của con người
Đối với tay máy công nghiệp đã có hơn 250 loại ,trong số đó có hơn
40% là loại tay máy có kiểu điều khiển đơn giản thuộc thế hệ thứ nhất
Sự xuất hiện của robot và sự gia tăng vai trò của chúng trong sản xuất
và xã hội loài người làm xuất hiện một ngành khoa học mới là ngành robot
học (Robotic) trên thế giới Ở nhiều nước đã xuất hiện những viện nghiên cứu
riêng về robot Ở Việt Nam, từ những năm giữa của thập kỷ 80 đã có viện
nghiên cứu về robot
3.2 SƠ ĐỒ CẤU TRÚC CHỨC NĂNG CỦA IR
Trang 9
Trang 13Thiết bị liên lạc với
Vậy robot là gì ? cho tới hiện nay chưa có một định nghĩa chính xác về robot, và cứ hai năm một lân trên thế giới người ta lại tổ chức một hội nghị
khoa học bàn về robot nhằm thông tin những thành tựu đã đạt được trong
nghiên cứu và chế tạo robot đồng thời thống nhất các thuật ngữ về robotic để
hiểu được về IR, trước hết chúng ta quan sát sơ đổ cấu trúc và chức năng của
TR như sau:
Chức năng của bộ phận giao riếp là liên lạc với người vận hành là thực hiện quá trình “Dạy học “ cho robot, nhờ đó Robot biết được nhiệm vụ phải thực hiện
Chức năng của hệ thống điêu khiển là thực hiện việc tái hiện lại các hành động (nhiệm vụ) đã được “học"
Bộ phận chấp hành giúp cho Robot có đủ “sức”, tức chịu được tải trọng
mà robot phải chịu trong quá trình làm việc , bộ phận này bao gồm các bộ
phận, phần 1 - bộ phận truyền chuyển động - phần tạo các khả năng chuyển
động cho robot và phần 2 - bộ phận chịu lực - phần chịu lực của Robot
Bộ phận cẩm biến tín hiệu làm nhiệm vụ nhận biết, đo lường và biến
đổi thông tin các loại tín hiệu như: các ndi tin trong bản thân Robot - đó là các
tín hiệu về vị trí, vận tốc, gia tốc trong từng thành phan của bộ phận chấp
Trang 10
Trang 14
hành các ngoại tín hiệu - là các tín hiệu từ môi trường bên ngoài có ảnh hưởng
tới hoạt động của Robot
Với cấu trúc và chức năng như trên Robot phần nào mang tính “người” còn phần máy chính là trạng thái vật lý của cấu trúc
Với IR, tính chất người và ”máy” cũng được thể hiện day đủ như trên,
duy chỉ hình thức mang dáng đấp của tay “Người”
Trang 11
Trang 15ĐỒ ÁN TỐT NGHIỆP SVTH : TRẦN HOÀNG VI
CHƯƠNG 4
Trang 16
4.1 Phương pháp điều khiển động cơ
- Dùng điện áp DC 5> 24V
- Cấp nguồn đúng chiều theo yêu cầu
- Thay đổi chiều quay bằng cách hoán vị các cực
Hình 3.5 : Phương pháp đảo chiều quay động cơ
Để làm được công việc trên , ở mạch điều khiển ta trang bị các cầu dao
đảo, các Transitor, FET công suất hoặc rơle điện từ
Dựa theo nguyên lý trên khi ứng dụng lắp ráp ROBOT thì những
chuyển động đảo chiều đó sẽ đảo chiêu được hành trình chuyển động của các
khâu
4.2 Nguyên lý hãm ngược
+ Đối với động cơ một chiều thì công việc hãm ngược đơn giản hơn,
giả sử: khi động cơ chạy theo chiểu nào đó, có thể cùng chiều hoặc ngược
chiều kim đồng hả
+ Khi ngưng cấp nguồn đồng thời đưa nguồn điện khác ngược chiều với
nguồn đang hoạt động lập tức động cơ sẽ bị hãm cưỡng bức, lúc ấy lực từ sẽ
có chiều ngược lạivà ta điều chỉnh thời gian sao cho động cơ dừng hẳn thì thôi
cấp nguồn
Về thời gian hãm ngược thì phụ thuộc vào người thiết kế chương trình
điều khiển
* Tốc độ động cơ được điều chỉnh phụ thuộc vào điện áp nguồn đưa
Biểu đồ biểu thi mối quan hệ giữa điện áp và tốc độ động cơ:
Trang 13
Trang 17Để đảm bảo động cơ chạy ổn định khi thiết kế nên chọn bộ nguồn có
điện áp tâi 2 đến 3A
4.3 - CÔNG CỤ ĐIỀU KHIỂN
a Giới thiệu cấu trúc phần cứng 8051
a1 Sơ đồ chân 8051
8051 14 IC vi diéu khién (Microcontroller) do hang Intel san xuat IC nay có đặc điểm như sau:
4k byte ROM,128 byte RAM
4 Port I/O 8 bit
2 bộ đếm/ định thời 16 bit
Giao tiếp nối tiếp
64k byte không gian bộ nhớ chương trình mở rộng
64k byte không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý luận lý (thao tác trên các bít đơn)
210 bit được địa chỉ hóa
Bộ nhân / chia 4
Sơ lược về các chân của 8051:
Trang 14
Trang 1820 P21 [2†—E 3— vss P2.0 [———E
8051
a2 Chức năng của các chân 8051:
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7) Port 0 có 2 chức năng:
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 thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa
bus địa chỉ và bus dữ liệu
Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7) Port 1 14 port IO ding cho
giao tiếp với thiết bị ngoài nếu cần
Port 2: từ chân 21 đến chân 2§ (P2.0 _P2.7) Port 2 là một port có tác
dụng kép 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 bộ nhớ mở rộng
Trang 19Tín hiệu đọc bộ nhớ dữ liệu ngoài
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình
mở rộng và thường được nối đến chân OE\ của Eprom cho phép đọc các byte
mã lệnh
PSEN ở mức thấp trong thời gian 8051 lấy lệnh Các mã lệnh của chương
trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên
trong 8051 để giải mã lệnh Khi 8051 thi hành chương trình trong ROM nội PSEN ở mức cao
ALE (Address Latch Enable):
Khi 8051 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ
và 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àm tí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 ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai
trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động
EA\ (External Access):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức l hoặc mức 0 Nếu ở
mức 1, 8051 thi hành chương trình từ ROM nội Nếu ở mức 0, 8051 thi hành
chương trình từ bộ nhớ mở rộng Chân EA\ được lấy làm chân cấp nguồn 21V
khi lập trình cho Eprom trong 8051
RST (Reset):
Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi
bên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp
điện mạch phải tự động reset
Các ngõ vào bộ dao động XI, X2:
Bộ tạo dao động được tích hợp bên trong 8051 Khi sử dụng 8051, người ta
chỉ cần nối thêm tụ thạch anh và các tụ Tần số tụ thạch anh thường là 12 Mh
b Cấu trúc bên trong của 8051
b1 Sơ đồ khối bên trong 8051:
Trang 16
Trang 20
Timer 0 Port
Trang 21
*Tổ chức bộ nhớ :
| LAE AD AC AB LÀA Lã? | as 2B |5F 5E |5D |5 |5B |5A |5 |5
AG [a7 [a6 A5 A4 A3 |À2 [AI | AO Š
2A ¡57 56 |5 |54 |53 |52 |51 |5
69 | Không có địa chỉ hỏa từng bít 6
9 [or [oc [op [9c] 9B [oa [99 |9 |22 |4F 4E | 4D | 4c [4B [4a | 49 |4
8
90 [97 | 96] 95 [94 93 [92 [91 [90 | og [ar 46 | 45 4a |4 lái Ì4
0
8D | Khong được địa củi bốa từng bit 27 |3 3E |3D |3C |3B |3A |3 |3
&C | Không được địa chỉ hóa tŸmg bít 8
8B | Không được địa chỉ hóa từng bit mba
8A | Không được địa chỉ bốa ting bit %3 % |5 |* |3
89 | Không được địa chỉ hóa từng bịt 0
#8 |S5F §E 8D 8c 8B [8d [eo [eg [2 |2 2E |?2D |2XZ |2 |2A |2 |2
§7 | Không được địa chỈ hóa từng bít 8
24 127 2% |25 |2 |2 |22 121 |2
§3 | Không được địa chỉ hếa từng bít 0
82 | Khong được địa chỉ hếa từng bít 23 |1F IE IID |IC [IE |IA |19 |1
81 | Không được địa chỉ bổa từng bit 8
O? Bank thanh ghiO( macdinhchoRO-R7) 00
CAU TRUC RAM NOI
Trang 18
Trang 22
Bộ nhớ bên trong 8051 bao gồm ROM và RAM RAM bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng đặc biệt
8051 có bộ nhớ theo cấu trúc Harvard: có những vùng nhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong
8051 nhưng 8051 vẫn có thể kết nối với 64 k byte bộ nhớ chương trình và 64 k
byte bộ nhớ dữ liệu mở rộng
Ram bên trong 8051 được phân chia như sau:
- Các bank thanh ghi có địa chỉ từ 00H đến IFh
- Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
- Ram đa dụng từ 30H đến 7FH
- Các thanh ghi chức năng đặc biệt từ 80H dén FFH
-Ram đa dụng:
Mọi địa chỉ trong vùng ram đa dụng đểu có thể được truy xuất tự do
dùng kiểu địa chỉ trực tiếp hay gián tiếp Ví dụ để đọc nội dung ô nhớ ở địa
chỉ 5FH của ram nội vào thanh ghi tich liy A: MOV A,5FH
Hoặc truy xuất dùng cách địa chỉ gián tiếp qua R0 hay R1 Ví dụ 2 lệnh sau sẽ
thi hành cùng nhiệm vụ như lệnh ở trên:
MOV RO, #5FH
MOV A, @RO
-Ram có thể truy xuất từng bít:
8051 chứa 210 bit được địa chỉ hóa từng bit, trong đó 128 bít chứa ở các byte có địa chỉ từ 20H đến 2FH, các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt
Ýtưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của vi điều khiển nói chung Các bit có thể được đặt, xóa, and, or, với 1 lệnh đơn Ngoài ra các port cũng có thể truy xuất được từng bít làm đơn giản phần mềm xuất nhập từng bit
Ví dụ để đặt bit 67H ta dùng lệnh sau: SETB 67H
-Các bank thanh ghi:
Bộ lệnh 8051 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định (sau khi reset hệ thống), các thanh ghi nàyở các địa chỉ 00H đến 07H lệnh
sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích lũy: MOV A, R5
Đây là lệnh 1 byte dùng địa chỉ thanh ghi Tuy nhiên có thể thi hành
bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ2: MOV A, 05H
Lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn
nhiều so với lệnh tương ứng dùng địa chỉ trực tiếp
Trang 19
Trang 23
Bank thanh ghi tích cực bằng cách thay đối các bit trong từ trạng thái
chương trình (PSW) Giả sủ thanh ghi thứ 3 đang được truy xuất, lệnh sau đây
sẽ di chuyển nội dung của thanh ghi A vao 6 nhé ram cé dia chi 18H: MOV
RO, A
* Các thanh ghi có chức năng đặc biệt:
8051 có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Register) ở
vùng trên của RAM nội từ địa chỉ 80H đến EEH
Chú ý: tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21
thanh ghi chức năng đặc biệt được định nghĩa sẵn các địa chỉ
-Thanh ghi trang thái chương trình :
Thanh ghi trạng thái chương trình PSW (Program Status Word ) ở địa chỉ
DOH chứa các bít trạng thái như bảng sau:
Bit Ky Địa chỉ | Ý nghĩa
hiệu
PSW.7 |CY D7H Cờ nhớ PSW.6 | AC D6H Cờ nhớ phụ PSW.5 | FO D5H Cờ 0
PSW.4 |RSI D4H Bit 1 chọn bank thanh ghi PSW.3 | RSO D3H Bit 0 chon bank thanh ghi
00=bank 0: địa chỉ 00H — 07H
01=bank I1: địa chỉ 08H —
OFH PSW.2 | 0V D2H 10=bank 2: địa chỉ 10H —
+ Cờ nhớ:
C = I nếu phép toán cộng có tràn hoặc phép toán trừ có mượn và ngược
lại C =0 Ví dụ nếu thanh ghi A có giá trị FF thì lệnh sau:
ADD A,#I Phép cộng này có tràn nên bit C = 1 va két qua trong thanh ghi A = 00H
Trang 20
Trang 24Cờ nhớ có thể xem là thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit
Cờ 0 là một bit cờ đa dụng dành cho các ứng dụng của người dùng
+ Các bit chọn bankthanh ghi truy xuất:
Các bịt chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được
truy xuất Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần
mềm nếu cần Ví dụ lệnh sau cho phép bank thanh ghi 3 và đi chuyển nội
dung của bank thanh ghi R7 (địa chỉ bye 1FH) vào thanh ghi A:
MOV ART PHữ vit N
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghỉ tích lay A cho các phép toán nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dấu 8
bit trong A và B rồi trả kết quả về 16 bit trong A (byte thấp) và B (byte cao)
Lệnh DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A va phần dư
trong B thanh ghi cũng có thể xem như thanh ghi đệm đa dụng
-Con trỏ ngăn xếp:
Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 18H Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ làm giảm SP Ngăn xếp của 8051 được giữ trong ram nội và giới hạn các địa chỉ có thế truy xuất bằng địa chỉ gián tiếp, chúng là 128 byte đầu của 8051
Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60 H, các lệnh sau đây được
dùng:
MOV SP,#5FH Khi reset 8051, SP sẽ mang giá trị mặc định là 07H và đữ liệu đầu tiên sẽ
được cất vào ô nhớ ngăn xếp có địa chỉ là 08 H Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc
truy xuất ngầm bằng lệnh gọi chương trình con ACALL,LCALL và các lệnh
trở về (RET RETI) để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực
hiện chương trình con và lấy lại khi kết thúc chương trình con
Trang 2]
Trang 25-Con trỏ dữ liệu
Con trỏ dữ liệu DPTR được dùng để truy xuất bộ nhớ ngoài là một
thanh ghi 16 bit 6 dia chi 82H (DPL: byte thấp) và 83H (DPH: byte cao) 3 lệnh sau sẽ ghi 55H vào ram ngoài ở địa chỉ 1000H:
MOV A,#55H
MOV DPTR, #1000H MOVX @DPTR,A
-Các thanh ghi port xuat nhập:
Các port của 8051 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 6 địa chỉ A0H, và port3 ở địa chỉ B0H tất cả các port này đều có thể truy xuất
từng bit nên rất thuận tiện trong khả năng giao tiếp
-Các thanh ghỉ timer:
8051 có chứa 2 bộ định thời/ đếm 16 bit được dùng cho việc định thời
hoặc đếm sự kiện Timer 0 ở địa chỉ SAH (TL0: byte thấp) và §CH (TH0:
byte cao) Timer 1 ở địa chỉ 8BH (TLI: byte thấp) va 8DH (THI: byte cao) Việc khởi động timer được Set bởi Timer Mode (TMOD) ở địa chỉ 89H va
thanh ghi điều khiển timer (TCON) ở địa chỉ 88H, chỉ có TCON được địa chỉ
hóa từng bịt
-Các thanh ghi port nối tiếp:
8051 chứa một port nối tiếp dành cho việc trao đổi thông tin với các
thiết bị nối tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác
Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2
dữ liệu truyền và dữ liệu nhận Khi truyền dữ liệu thì ghi lên SBUF, khi nhận
dữ liệu thì đọc SBUE Các mode vận hành khác nhau được lập trình qua thanh
ghi điều khiển port nối tiếp SCON ở địa chỉ 98H
-Các thanh ghỉ ngắt:
8051 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt
(TE) ở địa chỉ A8H, cả 2 thanh ghi được địa chỉ hóa từng bit
-Thanh ghi điều khiển công suất:
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa các bit điều
khiển
-Tín hiệu Reset:
8051 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian
2 chu kỳ, sau đó xuống mức thấp để 8051 bắt đầu làm việc RST có thể kích bằng tay bằng một phím nhấn thường mở, sơ đổ mạch reset như hình trên (hình a)
sau khi reset hệ thống được tóm tắt như sau:
Trang 22
Trang 26
Thanh ghi Nội dung
Đếm chương trình | 0000H
PC 00H Thanhghi tích lũy A |00H Thanh ghi B 00H Thanh ghi trạng thái | 07H
thời
Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được
Reset tại địa chỉ 0000H Khi ngõ vào RST xuống mức thấp, chương trình luôn
bắt đầu tại địa chỉ 0000H của bộ nhớ chương trình Nội dung của Ram trong chip không bị hay đổi bởi tác động của ngõ vào Reset
c.Hoạt đông thanh ghỉ TIMER
8051 có hai timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng
các timer để:
- _ Định khoảng thời gian
- Đếm Sự kiện Si
- _ Tạo tốc độ baud cho port nối tiếp trong 8051
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những
khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương
trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc
gửi sự kiện ra các ngõra Các ứng dụng khác có thể sử dụng việc tạo xung
nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ
Trang 23
Trang 27TMOD | Chế độ Timer 89H Không
TLO | Byte thấp của Tiner 0| 90H Không
TL1 | Byte thấp của Timer 1| 91H Không
THO | Byte cao cia Timer 0 92H Không
TH1 | Byte cao cua Timer 1 93H Không
Các thanh ghi chức năng cua timer trong 8051
Thanh ghi chế d6 timer (TMOD):
Thanh ghi TMOD chứa hai nhóm 4 bit dung để đặt chế độ làm việc cho Timer 0, va Timer 1
Bit Tén Timer |Mé6ta
7 GATE | 1 Bit mở cổng, khi lên 1 timer chỉ chạy khi INTI
3 GATE |0 Bit mở cổng, khi lên 1 timer chỉ chạy khi INTO
Trang 28Thanh ghi điều khiển timer(TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer
TCON.7 | TF1 8FH | Cờ báo tràn timer 1 Đặt bởi phần cứng khi
tràn, được xóa bởi phần mềm, hoặc phần cứng khi bộ xử lý chỉ đến chương trình
phục vụ ngắt
TCON.6 | TRI1 8EH | Bit điều khiển timer 1 chạy đặt xóa bằng
phần mềm để cho timer chạy ngưng
TCON.3 | TEI 8BH | Cờ cạnh ngắt 1 bên ngoài Đặt bởi phần
cứng khi phát hiện một cạnh xuống ở INTI
xóa bằng phần mềm họăc phần cứng khi
CPU chỉ đến chương trình phục vụ ngắt
TCON.2 | ITI | 8AH | Cờ kiểu ngắt 1 bên ngoài Đặt xóa bằng
phần mềm để ngắt ngoài tích cực cạnh xuống /mức thấp
Khởi đông và truy xuất thanh ghi timer:
Thông thường các thanh ghi được khởi động một lần đầu ở chương trình
để đặt ở chế độ làm việc đúng Sau đó, trong thân chương trình, các thanh ghi
Trang 25
Trang 29
timer được cho chạy, dừng, các bit được kiểm tra và xóa, các thanh ghi timer
được đọc và cập nhật theo đòi hỏi các ứng dụng
TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động Ví dụ, các lệnh sau khởi động Timer l như timer 16 bit (chế độ 1) có
xung nhịp từ bộ dao động tên chip cho việc định khoảng thời gian:
Lệnh này sẽ đặt MI = 1 và MO = 0 cho chế độ 1, C/ T= 0 và GATE = 0 cho xung nhịp nội và xóa các bit chế độ Timer 0 Dĩ nhiên, timer không thật
sự bắt đầu định thời cho đến khi bit điều khiển chạy TR1 được đặt lên 1
Nếu cần số đếm ban đầu, các thanh ghi TL1/THI cũng phải được khởi
động Một khoảng 100us có thể được khởi động bằng cách khởi động giá trị
Cờ báo tràn được tự động đặt lên 1 sau 100I:s Phần mém cé6 thé ddi trong 100
us bằng cách dùng lệnh rẽ nhánh có điều kiện nhảy đến chính nó trong khi cờ
báo tràn chưa được đặt lên 1:
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng
dụng vi điểu khiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự
kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi
Tổ chức ngắt của 8051:
Có 5 nguồn ngắt ở 8031: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và
được cho phép từng cái một bằng phần mềm
Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra khi một ngắt khác đang được phục vụ, có cả hai sự tuần tự hỏi vòng và sơ dé ưu tiên
Trang 26
Trang 30
hai mức dùng để xác định việc thực hiện các ngắt Việc hỏi vòng tuân tự thì
cố định nhưng ưu tiên ngắt thì có thể lập trình được
- Cho phép và cấm ngắt :
Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh
ghi chức năng đặt biệt có dinh dia chi bit IE ( Interrupt Enable : cho
IE.7 EA AFH Cho phép / Cấm toàn bộ
TE.6 _ AEH Không được mô tả
IE.5 ET2 ADH Cho phép ngắt từ Timer 2
(8052)
IE.4 ES ACH Cho phép ngắt port nối tiếp
IE.3 ETI ABH Cho phép ngắt từ Timer l
IE2 | EXI AAH Cho phép ngắt ngoài 1
IEI | ET0 A9H | Cho phép ngất từ Timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài 0
Ngắt Cờ Thanh ghi SFR va vi tri bit
Bén ngoai 1 IEI TCON.3
Timer | TF1 TCON.7
Trang 27
Trang 31Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt Nó
là địa chỉ bắt đầu của ISR cho nguôn tạo ngắt, các vector ngắt được cho ở
Vector reset hé théng (RST ở địa chỉ 0000H) được để trong bảng này vì theo
nghĩa này, nó giống ngắt : nó ngắt chương trình chính và nạp cho PC giá trị
4.4, PHUONG THUC TRUYEN THONG
1- GIGI THIEU CHUAN RS-232C
Vào năm 1960, cùng với sự phát triển mạnh của các thiết bị đầu cuối
máy tính chia sẻ thời gian, các Modem đã được tung ra ngày càng nhiều nhằm
đảm bảo cho các thiết bị đầu cuối có thể dùng các đường điện thoại để thông
tin giữa các máy tính với nhau ở những khoảng cách xa Modem và các thiét
bị được dùng để gửi số liệu nối tiếp thường được gọi là thiết bị thông tin số
liệu DCE (Datommunication Equipment) Các thiết bị đầu cuối hoặc máy tính
đang gửi hay nhận số liệu được gọi là các thiết bị đầu số liệu DTE (Data
Terminal Equipment) Nhằm đáp ứng với nhu cầu về tín hiệu và các chuẩn
bắt tay (handshake standards) giữa DTE và DCE, hiệp hội kỹ thuật điện tử
EIA đã đưa ra chuẩn RS-232C Chuẩn này mô tả chức năng 25 chân tín hiệu
Trang 28
Trang 32và bắt tay cho việc chuyển dữ liệu nối tiếp Nó cũng mô tả các mức điện áp,
trở kháng, tốc độ truyền cực đại và điện dung cực đại cho các đường tín hiệu
này
RS-232 ấn định 25 chân tín hiệu, và quy định các đầu nối DTE phải là
male (đực) và các đầu nối DCE phải là female (cái) Một loại đâu nối đặc biệt không được cho, nhưng thường dùng nhiều nhất là đầu nối mele DB-25P (hình 2-1) Ngoài ra, đối với nhiều hệ thống còn dùng loại 9 chân như loại DE-9P
mele (hinh 2-2)
oeoeooooeooooooe ooo
O\sereveserece/© SN /°
Được EIA đưa vào năm 1969 dé truyén dữ liệu nối tiếp và tín hiệu điều
khiển giữa Modem và thiết bị đầu cuối (hoặc máy tính) với tốc độ truyền tối
đa là 20kbps ở cự ly khoảng 15m đây là một dạng giao tiếp loại TTL + bộ
kích đường dây không cân bằng
Việc mô tả chuẩn này được chia làm ba phần: Các đặc điểm kỹ thuật về
điện, mô tả các đường dữ liệu điều khiển và sử dụng bộ kết nốt chân ra
2 - ĐẶC ĐIỂM KỸ THUẬT vỀ ĐIỆN CỦA RS232C
IN PIN COMMO | RS232C SIGNAL
NUMBER | NUMBERS N NAME | DIRECTIO
Trang 3315V Các đường dữ liệu sử dụng mức logic âm: logic I có điện thế giữa -—5V
và —15V, logic 0 có điện thế giữa +5V và +15V tuy nhiên các đường điển
khiển (ngoại trừ đường TDATA và RDATA) sử dụng logic dương: gía trị
TRUE = +5V đến +15V và FALSE =-5V đến — 15
Ở chuẩn giao tiếp này, giữa ngõ ra bộ kích phát và ngõ vào bộ thu có
mức nhiễu được giới hạn là 2V Do vậy ngưỡng lớn nhất của ngõ vào là +3V
trái lại mức + 5V là ngưỡng nhỏ nhất với ngõ ra Ngõ ra bộ kích phát khi
không tải có điện áp là + 25V
> Các đặc điểm về điện khác bao g6m
@ Ry, (điện trở tải) được nhìn từ bộ kích phát có giá trị từ 3 + 7kÔ
+ C¿ (điện dung tải) được nhìn từ bộ kích phát không được vượt quá 2500pE
¢ Để ngăn cẩn sự dao động quá mức, tốc độ thay đổi (Slew rate ) của điện áp
không được vượt qúa 30V/us
Đối với các đường điểu khiển, thời gian chuyển của tín hiệu (từ TRUE
sang FALSE, hoặc từ FALSE sang TRUE ) không được vượt qúa 1ms Đối với
các đường dữ liệu, thời gian chuyển (từ 1 sang 0 hoặc từ 0 sang 1) phải không | vượt qúa 4% thời gian của 1 bit hoặc lms
3 -CÁC ĐƯỜNG DỮ LIỆU VÀ ĐIỀU KHIỂN CỦA RS232
- _ TxD: Dữ liệu được truyễn đi từ Modem trên mạng điện thoại
- RxD: Dit liéu được thu bởi Modem trên mạng điện thoại
> Các đường báo thiết bị sẵn sàng:
DSR : Để báo rằng Modem đã sẵn sàng
DTR : Để báo rằng thiết bị đâu cuối đã sẵn sàng
Các đường bắt tay bán song công
RTS : Để báo rằng thiết bị đầu cuối yêu cầu phát dữ liệu
Trang 30
Trang 34
- CTS: Modem dap ứng nhu cầu cần gửi dữ liệu của thiết bị đầu cuối cho
thiết bị đầu cuối có thể sử dụng kênh truyền dữ liệu Các đường trạng
thái sóng mang và tín hiệu điện thoại:
- CD: Modem bdo cho thiết bị đầu cuối biết rằng đã nhận được một sóng
mang hợp lệ từ mạng điện thoại
- RI: Các Modem tự động trả lời báo rằng đã phát hiện chuông từ mạng điện thoại địa chỉ đầu tiên có thể tới được của cổng nối tiếp được gọi là địa chỉ cơ bản (Basic Address) Các địa chỉ ghi tiếp theo được đặt tới bằng việc cộng thêm số thanh ghi đã gặp của bộ UART vào địa chỉ cơ bản
- Mức tín hiệu trên chân ra RxD tùy thuộc vào đường dẫn TxD và thông
thường nằm trong khoảng —12 đến +12 Các bit dữ liệu được gửi đảo ngược
lại Mức điện áp đối với mức High nằm giữa -3V và —-12V và mức Low nằm giữa +3V và +12V Trên hình 2-4 mô tả một dòng dữ liệu điển hình
của một byte dữ liệu trên cổng nối tiếp RS-232C
- Ở trạng thái tnh trên đường dẫn có điện áp —-12V Một bit khởi động
(Starbit) sẽ mở đầu việc truyền đữ liệu Tiếp đó là các bit dữ liệu riêng lẻ
sẽ đến, trong đó các bit giá trị thấp sẽ được gửi trước tiên Còn số của các
bit thay đổi giữa 5 và 8 Ở cuối của dòng dữ liệu còn có một bit dừng
(Stopbit) để đặt trở lại trạng thái ngõ ra (-12V)
Địa chỉ cơ bản của cổng nối tiếp của máy tính PC có thể tóm tắt trong bảng các địa chỉ sau:
DO Di D3 | D4 DS D6 | D7 -2V HIGHT
1.04ms
COM I1 (cổng nối tiếp thứ nhất) Địa chỉ cơ bản 3F8(Hex)
COM2 (cổng nối tiếp thứhai) Địa chỉcơbản = 2F8(Hex)
COM3 (cổng nối tiếp thứba) Địa chỉcơbản = 3E8(Hex)
COM 4 (cổng nối tiếp thứtư) Địachỉcơbản = 2E8(Hex)
Hình 2-4: Dòng dữ liệu trên cổng RS 232 với tốc độ 9.600 baud
Trang 31
Trang 35
Cũng như ở cổng máy in, các đường dẫn tín hiệu riêng biệt cũng cho phép trao đổi qua các địa chỉ trong máy tính PC Trong trường hợp này, người
ta thường sử dụng những vi mạch có mức độ tích hợp cao để có thể hợp nhất
nhiều chức năng trên mét chip Ở máy tính PC thường có một bộ phát/nhận
không đồng bộ vạn năng (gọi tắt là UART: Universal Asnchronous Receiver/
Transmitter) để điều khiển sự trao đổi thông tin giữa máy tính và các thiết bị ngoại vi Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc các thế hệ tiếp
theo
Thông thường với các yêu cầu ứng dụng tốc độ thấp người ta giao tiếp
qua ngõ nối tiếp, nó giao tiếp theo tiêu chuẩn RS232C và dùng để giao tiếp
giữa máy tính với Modem hoặc Mouse Ngoài ra cũng có thể dùng giao tiếp với printer hay plotter nhưng không thông dụng lắm bởi tốc độ truyển quá
chậm Đối với máy AT cho ta hai ngõ giao tiếp COMI và COM2 Trong một
số card I/O ta có thể có đến 4 cổng COM
ĐỂ giao tiếp nối tiếp với 2 ngõ COM này Bus hệ thống của CPU (Data
Bus va Address Bus) hang IBM st dung hai Chip lập trình của Intel là 8250
UART (Universal Asynchronus Receiver Transmitter) Dia chi theo bộ nhớ
của hai Chip này lă 0040:0000 cho UART của ngõ COMI và 0040:0002 cho
UART của ngõ COM2 (Địa chỉ logic do hệ điều hành chỉ định) và địa chỉ theo Port để truy xuất khi sử dụng là 3E8-3FF cho COMI và 2F8-2FF cho COM2
Dữ liệu truyền qua cho Port COM dưới dạng nối tiếp từng Bit một, đơn
vị dữ liệu có thể là 5 Bit, 6 Bit hay 1 byte tùy theo sự cài đặt lúc khởi tạo Port
COM Ngoài ra để truyền dữ liệu qua Port COM còn cần những tham số sau:
Bit mở đầu cho một đơn vị dữ liệu START Bit STOP Bit (Bit kết thúc) Parity
(Kiểm tra chan 1é) Baud Rate (Tốc độ truyền) tạo thành một Frame (Khung
truyền)
Port COM là một thể khởi tạo bằng BIOS thông qua chức năng 0 của
Interrupt 14, nạp vào thanh ghi DXI1 chỉ số chọn kênh (COMI = 0, COM2
= 1) Thanh ghi AL được nạp vào các tham số của việc truyền dữ liệu
Trang 36
> BưD; : Cho biết số Stop Bit
0 :- Sử dụng một bit Stop
1 : SW dung hai bit Stop
> BitD3;D,4 : Các Bit parity (chấn lẻ)
00 : Không kiểm tra tinh Parity
11 : Không kiểm tra tính Parity
01 : Odd(l)
10 : Even (chấn)
> Bir D;DạD;: Cho biết tốc độ truyén (Baud Rate)
000: Tốc độ truyền 110bps (bit per second)
Tốc độ truyền 150bps (bit per second)
Tốc độ truyền 300bps (bit per second) Tốc độ truyền 600bps (bit per second) Tốc độ truyển 1200bps (bit per second)
Tốc độ truyền 2400bps (bit per second)
Tốc độ truyền 4800bps (bit per second)
1 1 1: Tốc độ truyền 9600bps (bit per second)
b Hoạt động của cổng nối tiếp
a Sự khởi động của BIOS
Sau khi bật máy (hay Reset máy), chương trình POST kiểm tra xem liệu
có bất kỳ cổng nối tiếp nào được cài đặt hay không POST khảo sát nhóm cổng I/O: 3F8 +3FEh Dé phat hiện một cổng hoạt động, thanh ghi IIR
(Interrupt Identification Register) được đọc từ cổng 3FAh hay 2FAh Nếu tất
cả các bịt từ 3+7 của thanh ghi IIR đều là 0, thì POST xem như cổng nối tiếp
có hoạt động
Một khi đã xác định được nhóm cổng L/O nối tiếp có hoạt động, địa chỉ
cổng IL/O cơ sở được lưu trữ trong vị trí BIOS RAM cổng nối tiếp chưa sử dụng
thấp nhất Có 4 từ được dành trong RAM bắt đầu tại địa chỉ 40:0h để chứa địa
chi I/O cha cổng nối tiếp có hoạt động Nhiều POST của các hãng cung cấp máy sẽ không bao giờ kiểm tra các cổng COM3 và COM4, vì IPM không định nghĩa một địa chỉ cổng chuẩn cho các cổng này
Nói chung, hầu hết các hệ thống chỉ kiểm tra có 2 cổng Tuy nhiên, các
hệ thống cùng họ mới hơn thường kiểm tra 4 địa chỉ cổng có thể có Các hệ thống MCA kiểm tra 8 địa chỉ cổng nối tiếp khác nhau có thể có trong một lần thử để tìm ra 4 cổng nối tiếp có hoạt động
Trang 33
Trang 37Bảng trên mô tả thứ tự theo đó các BIOS sẽ tìm kiếm các cổng hoạt
động Chỉ cổng I/O cơ sở đối với mỗi nhóm được hiển thị trong bảng này
Trên hệ thống MCA, mét khi 4 cổng đã được tìm thấy, các cổng khác không
được kiểm tra nữa
Khi hoàn tất các công việc kiểm tra POST nối tiếp, các địa chỉ cổng nối
tiếp được cất giữ Điều này thường tạo ra một trong 4 trường hợp được mô tả
trong bảng sau:
Địa Cổng | Trường hợp | Trường hợp | Trường hợp | Trường hợp
chỉ nối 1 Địa chỉ 2 Địa chỉ 3 Địa chỉ 4 Địa chỉ
¡ Các kết quả POST có thể có về việc phát hiện cổng nối tiếp
-_ Trường hợp 1 : Mô tả POST phát hiện 2 cổng nối tiếp
- _ Trường hợp 2 và 3: Cho thấy chỉ có một cổng nối tiếp được phát hiện
- Trường hợp 4 : Cho thấy không phát hiện được cổng nối tiếp nào
Các phép thử này không khẳng định liệu có một thiết bị nối tiếp thực sự được nối với cổng I/O hay không Phép thử chỉ kiểm tra xem liệu phần cứng cổng nối tiếp có tổn tại hay không tại một địa chỉ L/O cụ thể Tổng số cổng nối
tiếp hoạt động được phát hiện thấy (0 + 4) được cất giữ trong byte thiết bị tại
dia chi BIOS RAM 40:10h tw cdc bit 9 + 11
a Qué trinh phat néi tiếp
Để phát một byte trên đường dây kết nối nối tiếp, cổng được giả định là
đã được khởi sự với tốc độ baud và các phần chọn khung (Frame) nối tiếp
Trang 34
Trang 38
thích hợp Chúng ta cũng giả định rằng các byte sẽ được phát đi trên cổng nối
tiếp số 1 (COMI)
1 Trước tiên, xác định địa chỉ cơ sở cổng L/O bằng cách đọc một từ (Word) từ
vùng dữ lệu BIOS tại 40:OH đối với cổng nối tiếp COMI Nếu trị = 0: Không có cổng nối tiếp hoạt động nào được gắn ở đây và dĩ nhiên không
có dữ liệu nào được gửi đi
2 Hai đường diéu khién MODEM 14 DTR (DATA Terminal Ready) va RTS (Request to Send) được xác lập lên mức cao (DTR = 1, RTS = 1)
- DTR thông báo cho thiết bị kết nối biết rằng máy tính đang hoạt động
và sẵn sàng để liên lạc
- RTS bdo cho thiét bị kết nối biết rằng máy tính muốn gửi dữ liệu
- Hai đường này được kích khởi bằng cách ghi trị 3 thanh ghi MCR
(MODEM control Regester) của UART
3 Kế đó, kiểm tra hai đường trạng thái CTS (Clear To Send) Những đường này nằm trong các bít 4 và 5 của thanh ghi MSR (MODEM Status Regester)
- DSR báo cho máy tính biết thiết bị kết nối đã được bật lên và sẵn sàng
- CT§ báo cho máy tính biết rằng thiết bị kết nối đã sẵn sàng đối với dữ
liệu
- Các đường trạng thái này nên được kiểm tra trong 2ms hay cho đến khi
cả hai đều chuyển sang mức cao Khi cả hai đường này đều ở mức cao, thiết bị được kết nối với cổng nối tiếp đã báo hiệu cho biết nó đã sẵn
sàng cho một byte Một lỗi đáo hạn (timeout error) được báo hiệu bởi
phần mềm nếu một trong hai đường dẫn còn ở mức thấp lâu hơn khoảng
2ms
4 Đến đây thiết bị kết nối đã sẵn sàng tiếp nhận một byte, UART phải được
kiểm tra xem liệu thanh ghi chứa đữ liệu phát THR (Transmit Holding Regester) đã sẵn sàng có một byte chưa Thanh ghi LSR (Line Status
Regester), bit 5, được xác lập lên mức cao khi thanh ghi chứa dữ liệu này
trống rỗng và sẵn sàng cho một byte Một lần nữa, giống ở bước 3 nếu
thanh ghi THR không thể trở nên hữu dụng trong 2ms, thì phần mềm sẽ
báo một lỗi đáo hạn, và bổ qua việc phát đi
5 Nếu cho đến bây giờ chưa xảy ra việc đáo hạn, byte có thể được gửi đến
thanh ghi chứa dữ liệu phát của UART
6 Sau đó, UART phát byte từ thanh ghi chứa dữ liệu phát vào thanh ghi dịch TSR (từ đây các bit dữ liệu được dịch ra và gửi đi), và tạo dạng khung nối
tiếp
a_ Quá trình nhận nối tiếp
Trang 35
Trang 39
Để nhận | byte từ đường dây kết nối nối tiếp, cổng được giá định như trên
(cho cổng COM8):
1 Trước tiên, xác định địa chỉ cơ sở cổng I/O bing cách đọc một từ (Word) từ
vùng dữ liệu BIOS tại 40:4H đối với cổng nối tiếp COM3 Nếu trị = 0: Không có cổng nối tiếp hoạt động nào được gắn ở đây và dĩ nhiên không
có đữ liệu nào được gửi đi
2 Hai đường điểu khiển MODEM là DTR (DATA Terminal Ready) va RTS (Request to Send) được xác lập lên mức cao (DTR = 1, RTS = l)
-_ Điều này thông báo cho thiết bị kết nối biết rằng máy tính đang hoạt
động và sẵn sàng liên lạc Điều này được thực hiện bằng cách ghi trị 1 các thanh ghi MMC của UART
3 Kế đó kiểm tra tín hiệu trên đường trạng thái DSR Tín hiệu này xuất hiện
trong bit 5 của thanh ghi MSR DSR báo cho máy tính biết rằng thiết bị kết
nối đã được bật lên và sẵn sàng DSR sẽ được kiểm tra cho đến khi nó lên
mức cao hay cho đến khi hết 2ms trước khi một lỗi đáo hạn được báo hiệu
4 Kế đó, vùng đệm nhận được kiểm tra để xem dữ liệu đã nhận được dữ liệu
nào chưa Bit 0 của thanh ghi LSR chứa một cờ hiệu báo dữ liệu đã sắn sàng Nó được xét lên 1 khi vùng đệm có dữ liệu Nếu cờ báo dữ liệu sắn
sàng không được xét sau 2ms, thì phần mềm sẽ khai báo một lỗi đáo hạn,
và tác vụ bị bỏ qua
5 Nếu cho đến bây giờ chưa xây ra việc đáo hạn, byte có thể được đọc từ
vùng đệm nhận của UART
- Trong chế độ bất đồng bộ, 8251 A dịch số liệu trên dây RxD từ bit một
Sau mỗi bit, thanh ghi thu được so sánh với thanh ghi chứa ký tự SYN
Nếu hai thanh ghi chưa bằng nhau thì 8251 A dịch bit khác và tiếp tục
so sánh cho đến khi hai thanh ghi bằng nhau 8251 A kết thúc chế độ
bất đồng bộ và đưa tín hiệu SYNDET (Synch Detect) để báo đồng bộ
đã hoàn tất
- _ Nếu USART được nạp từ điều khiển để làm việc với hai ký tự SYNC,
quá trình bất đồng bộ cũng như trên Nhưng hai ký tự kế tiếp nhau sẽ
được so sánh với hai ký tự SYNC trước khi đạt được sự đồng bộ Ở chế
độ bất đồng bộ bit chẵn/lẻ sẽ không phải kiểm tra USART ở chế độ
đuổi bắt đồng bộ với hai điều kiện:
- USART được khởi động ở chế độ đồng bộ
- USART đã nhận lệnh ở chế độ bất đồng bộ
an Khối phát
Khối này nhận số liệu song song từ đơn vị trung tâm, chèn thêm các
thông tin rồi chuyển sang nối tiếp và gửi ra thân TxD (Transmiter DATA)
Trang 36
Trang 40- GO chế độ bất đồng bộ, khối phát chèn thêm bit START, bit kiểm tra chấn lẻ paraty và một hay hai bit STOP
- Trong chế độ đồng bộ, khối phát chèn thêm các ký tự SYNC Những ký
tự đồng bộ này phải được phát trước khi bản tin bắt đầu Nếu trong khi
phát có khoảng trống giữa hai ký tự thì USART tự động chèn các ký tự
đồng bộ vào
- Trong cả hai chế độ đồng bộ và bất đồng bộ, quá trình phát chỉ được
cho phép khi tín hiệu TxE (Transmiter Enable) và tín hiệu CTS, ở trạng
thái tích cực Nếu USART được đặt ở chế độ đồng bộ từ ngoài, chân SYNDET sẽ là cửa vào và nhận tín hiệu để đồng bộ khi thu
-_ Khối phát có thể gửi tín hiệu cắt (BREAK) Đó là một chu kỳ liên tục
các bit SPACE trên đường dây liên tục và được dùng ở chế độ truyền
song công để cắt quá trình gửi thông tin ở đầu cuối
- USART sẽ gửi tín hiệu cắt liên tục nếu bit D; của byte lệnh được thiết
lập
a Khối điều khiển Modem
Khối này tạo và nhận tín hiệu RTS (Request to Send)
® Ngoài ra, còn có các tín hiệu ra DTR (Data Terminel Ready) và tín
hiệu vào DSR (Data Set Ready) Đó là những tín hiệu vạn năng
© Tín hiệu DTR điều khiển bởi bit D; bởi byte lệnh
® Tín hiệu DSR thể hiện ở bit D; của thanh ghi trạng thái
® USART không định nghĩa các tín hiệu này một cách cứng ngắc Thông thường:
- _ Tín hiệu DTR qua Modem để chỉ rằng thiết bị đầu cuối sẵn sàng truyền
- DSR 1a tin hiéu từ Modem để chỉ trạng thái sẵn sàng liên lạc
u Khối điều khiển vào/ra Logic diéu khiển đọc/ghi giải mã các tín hiệu điều khiển từ Bus điều
khiển của đơn vị trung tâm thành những tín hiệu đều khiển các cổng dẫn số liệu đến Bus nội của USART
Bảng sau cho biết sự liên quan giữ các tín hiệu CE, C/D\ RD\
CE | CD\ | RD\ | WR\ Ý Nghĩa
1 CPU đọc số liệu từ USART
1 CPU doc trang thái từ USART
0 | CPU ghi số liệu vào USART
0
Xx
CPU ghi lệnh vào USART
Bus của USART ở trạng thái trở kháng cao
Trang 37