Có một số tiêu chuẩn đang cạnh tranh nhau trong việc chi phối các tiêu chuẩn truyền thông mà theo đó các dữ liệu sẽ được trao đổi trong mạng 1.1 Mạng LAN Local Area NetWork Các máy tí
Trang 1Với sự tiến bộ của khoa học kỹ thuật, việc thu thập và chia sẽ thông tin đang được quan tâm, cải tiến liên tục Giải pháp tốt nhất cho công việc
trên là sử dụng mạng Ngày nay rất có nhiều loại mạng khác nhau: mạng
truyền dữ liệu nối tiếp dùng chuẩn RS-485, mạng LAN, WAN, mạng Ethernet, mạng Internet … Hiện nay, mạng Internet là mạng tiên tiến nhất, chúng chia sẽ một lượng thông tin vô cùng lớn Trong nội dung đề tài này tôi chỉ giới thiệu mạng truyền dữ liệu nối tiếp dùng chuẩn RS-485
1 Nhiệm vụ đề tài:
Mạng thu thập và xử lý dữ liệu từ các thiết bị sau:
Đọc mã vạch: dùng vào việc quản lý thời gian nhân viên ra vào công ty
Thermocouple: Thu thập và điều khiển nhiệt độ của lò nhiệt,
do không có lò nhiệt, và sự đáp ứng chậm của nhiệt độ Do thời gian bảo vệ luận văn không nhiều, nên không điều khiển thực tế mà chỉ thông qua mô phỏng, chương trình mô phỏng được thực hiện trên phần mềm Visual Basic
Quang Báo:Dùng để thông báo tin tức của công ty, chữ trên bảng thông báo thay đổi được
2 Thực Hiện:
Thiết kế 3 kit AT89C51:
Kit thu thập và điều khiển nhiệt độ:
- Điều khiển lò nhiệt, dùng điều kiển on-off, thông qua logic mờ
- Dùng cảm biến: Thermocouple
- Hoạt động của lò nhiệt: bán tự động
Kit đọc mã vạch:
- Do không có thiết bị đọc mã vạch, dùng phím thay thế
- Mục đích: Kiểm tra thời gian nhân viên ra, vào công ty làm việc
Kit quang báo:
- Dùng hiển thị thông báo, thông báo tin tức Thiết kế chương trình điều khiển trên kit và PC
Trang 3 Sơ lược về mạng:
1) Mạng (NetWork):
Hệ truyền thông và trao đổi dữ liệu được xây dựng bằng sự ghép nối vật lí hai hoặc nhiều máy tính Các mạng máy tính cá nhân khác nhau tùy theo quy mô bao quát của chúng Mạng nhỏ nhất, gọi là mạng cục bộ ( LAN), có thể chỉ nối hai hoặc ba máy tính với một thiết bị ngoại vi đắt tiền, như máy in laser chẳng hạn, lớn hơn một ít có thể nối đến 75 máy tính hoặc nhiều hơn nữa Các mạng lớn hơn, gọi là mạng diện rộng ( WAN), dùng các đường dây điện thoại hoặc các phương tiện liên lạc khác để liên kết lạc khác để liên kết các máy tính với nhau trong phạm vi từ vài chục đến vài ngàn dặm Thành phần cơ bản của mạng là máy tính cá nhân hoặc trạm công tác có lắp card giao diện và đều được nối bằng dây cáp với máy dịch vụ tệp chứa bộ lưu trữ lớn trung tâm Tất cả các thành phần đó tương tác với nhau bằng phần mềm hệ điều hành mạng ( NOS) Máy dịch vụ tệp trung tâm không được sử dụng trong các mạng bình đẳng ( peer-to-peer) Khác với các hệ thống nhiều người sử dụng, mà trong đó mỗi thành viên được trang bị một terminal câm không có khả năng xử lý, trong mạng máy tính mỗi thành viên có một trạm công tác chứa các mạch xử lý riêng của mình Các mạng máy tính cá nhân cũng được phân biệt theo cấu trúc liên kết, tức là theo dạng hình học của mạng tôpô mắc nối chúng Các cấu trúc liên kết phổ biến hiện nay gồm các tô pô hình sao, trong đó các máy được nối với một máy dịch vụ tệp trung tâm, và tô pô buýt, trong đó máy được nối với một dây cáp xương sống duy nhất Đồng thời, cũng có hai phương pháp truyền thông tin thông qua dây cáp của mạng: băng tần cơ sở, và băng tần rộng Có một số tiêu chuẩn đang cạnh tranh nhau trong việc chi phối các tiêu chuẩn truyền thông mà theo đó các dữ liệu sẽ được trao đổi trong mạng
1.1) Mạng LAN ( Local Area NetWork )
Các máy tính cá nhân và các máy tính khác trong phạm vi một khu vực hạn chế được nối với nhau bằng các dây cáp chất lượng tốt, sao cho những người sử dụng có thể trao đổi thông tin, dùng chung các thiết bị ngoại
vi, và sử dụng các chương trình cũng như các dữ liệu đã được lưu trữ trong một máy tính dành riêng gọi là máy dịch vụ tệp Khác nhau khác nhiều về
Trang 4quy mô và mức độ phức tạp, mạng cục bộ có thể chỉ liên kết vài ba máy tính cá nhân và một thiết bị ngoại vi dùng chung đắt tiền, như máy in laser chẳng hạn Các hệ thống phức tạp hơn thì có các máy tính trung tâm (máy dịch vụ tệp) và cho phép những người dùng tiến hành thông tin với nhau thông qua thư điện tử để phân phối các chương trình nhiều người sử dụng, và để thâm nhập vào các cơ sở dữ liệu dùng chung
1.2) Ethernet:
Ethernet là công nghệ được sử dụng rộng rãi nhất trong các mạng cục bộ ( mạng LAN ) Bản thân riêng Ethernet không thể làm thành một mạng; nó cần đến vài thủ tục khác như TCP/IP, để cho các nút thực hiện việc truyền thông tin Ethernet trong dạng chuẩn của nó đã không đảm đương được việc luân chuyển một lượng thông tin lớn, nhưng vẫn có nhiều
ưu điểm, cụ thể là:
Các mạng Ethernet dễ thiết kế và có chi phí thấp trong việc cài đặt
Các thành phần của mạng có giá thành rẻ và được hổ trợ tốt
Công nghệ đã được thử thách qua thực tế và tỏ ra là khá hấp dẫn cũng như đáng tin cậy
Đơn giản trong việc bổ sung thêm hoặc bớt đi các máy tính trên mạng
Được đa số các phần mềm và phần cứng hổ trợ
Một vấn đề chính còn tồn tại với Ethernet là: bởi vì các máy tính đều tranh đua để truy cập lên mạng nên không có gì đảm bảo là một máy tính cụ thể nào đấy sẽ truy cập được ở một thời điểm cho trước Cuộc tranh giành sẽ xảy ra các vấn đế khi 2 máy tính đều cố gắng truyền thông tin cùng một lúc; để rồi cả 2 đều phải lùi ra khỏi cuộc tranh đua và không có dữ liệu nào có thể được truyền
Phần cứng, định ước, và tiêu chuẩn ghép nối của một loại mạng cục bộ, do hãng Xerox Corporation đưa ra đầu tiên, có khả năng liên kết đến 1024 nút trong một mạng buýt Do sử dụng tốc độ cao trong kĩ thuật truyền tin dải tần cơ bản (kênh đơn) Ethernet cho phép truyền dữ liệu dạng dãy với tốc độ 10 megabit mỗi giây, với thông lượng thực tế từ 2 đến 3 megabit mỗi giây Ethernet dùng kỹ thuật thâm nhập nhiều mối bằng cảm nhận sóng mang có dò xung đột ( CSMA/CD) để đề phòng trục trặc cho mạng khi có hai thiết bị đồng thời cùng cố thâm nhập vào mạng Chú ý: Có một số hãng, như 3 Com và Novell chẳng hạn, cũng sản xuất phần cứng mạng cục bộ cùng theo định ước Ethernet, nhưng sản phẩm của hãng này thường không tương thích với sản phẩm của hãng kia
BỘ TRUYỀN NHẬN ETHERNET:
Ethernet không đòi hỏi phức tạp ở phần cứng Các dây cáp được sử dụng để nối với nó hoặc là cáp hai sợi xoắn không bọc kim (UTP) hoặc
Trang 5là cáp đồng trục Các dây cáp này phải được cắt đoạn để độ dài tương ứng với trở kháng phù hợp với trở kháng đặt trưng cho chúng, cụ thể là 50 đối với cáp đồng trục và 100 đối với dây cáp UTP
Mỗi nút đều có phần cứng truyền và nhận để điều khiển quá trình truy nhập tới dây cáp và đồng thời giám sát sự lưu thông của dữ liệu trên mạng Phần cứng thực hiện chức năng truyền nhận gọi là bộ truyền nhận và một bộ kiểm tra bắt đầu và kết thúc khung
Bộ truyền nhận Ethernet truyền theo một Ether (các nút giám sát bus) đơn Khi không có nút nào truyền thì áp trên đường dẫn bằng +0,7V điện áp này cung cấp một tín hiệu nhạy với sóng mang cho tất cả các nút trên mạng; điện áp này còn gọi là nhịp tim ( heartbeat) Nếu một nút phát hiện ra diện áp này thì nó biết rằng mạng đang hoạt động và không có nút nào đang truyền
Như vậy khi một nút muốn truyền một thông điệp thì nó phải chờ đến một thời điểm không bận Khi đó nếu 2 hay nhiều bộ truyền đang hoạt động ở cùng thời điểm đó thì sẽ xảy ra xung đột Khi chúng phát hiện thấy tín hiệu, một nút truyền đi một tín hiệu báo tắc nghẽn Các nút bị lâm vào tình trạng xung đột lúc đó sẽ chờ một khoảng thời gian ngẫu nhiên ( trong khoảng 10 đến 90ms) trước khi cố gắng truyền lần nữa Mỗi nút trên một mạng đều chờ một lần truyền lại Như vậy, hiện tượng xung đột làm ảnh hưởng đến hiệu quả truyền dữ liệu trên mạng Thông thường, các bộ truyền nhận phát hiện ra xung đột bằng việc giám sát điện áp một chiều (DC) hoặc điện áp trung bình trên đường truyền
Khi truyền dữ liệu, một đơn vị truyền nhận phần mở đầu bằng 1s và 0s liên tiếp Mã được sử dụng là mã Manchester, mã này diễn tả bằng số 0 khi có bước nhảy điện áp HIGH xuống LOW và 1 khi có bước nhảy điện áp từ LOW lên HIGH Điện áp thấp bằng +0,7V Như vậy khi phần mở đầu được truyền thì điệp áp sẽ thay đổi giữa –0,7V và +0,7V
Phần mở đầu
Tín hiệu digital Ethernet
Nếu sau khi truyền phầm mở đầu mà không phát hiện thấy xung đột thì phần còn lại của khung truyền sẽ được truyền tiếp
Trang 61.3) Internet:
Một hệ thống gồm các mạng máy tính được liên kết với nhau trên phạm vi toàn thế giới, tạo điều kiện thuận lợi cho các dịch vụ truyền thông dữ liệu, như đăng nhập từ xa, truyền các tệp tin, thư tín điện tử, và các nhóm thông tin Internet là một phương pháp ghép nối các mạng máy tính hiện hành, phát triển một cách rộng rãi tầm hoạt động của từng hệ thống thành viên Nguồn gốc đầu tiên của Internet là hệ thống máy tính cuả Bộ Quốc Phòng Mỹ, gọi là mạng ARPAnet, một mạng thí nghiệm được thiết kế từ năm 1969 để tạo điều kiện thuận lợi cho việc hợp tác khoa học trong các công trình nghiên cứu quốc phòng ARPAnet đã nêu cao triết lý truyền thông bình đẳng ( peer-to-peer), trong đó mỗi máy tính của hệ thống đều có khả năng "nói chuyện" với bất kỳ máy tính thành viên nào khác Bất kỳ mạng máy tính nào dựa trên cơ sở thiết kế của ARPAnet đều được mô tả như một tập hợp các trung tâm điện toán tự quản, mang tính địa phương và tự điều hành, chúng được liên kết dưới dạng "vô chính phủ nhưng có điều tiết" Sự phát triển thiết kế của mạng ARPAnet đơn thuần chỉ do những yêu cầu về quân sự: Mạng này phải có khả năng chống lại một cuộc tấn công có thể vô hiệu hoá một số lớn các trạm thành viên của nó Tư tưởng này đã được chứng minh là đúng khi Mỹ và các đồng minh tham gia vào cuộc chiến tranh vùng Vịnh Sự chỉ huy và mạng kiểm soát của Irak, được tổ chức mô phỏng theo công nghệ ARPAnet, đã chống lại một cách thành công đối với các nổ lực của lực lượng đồng minh nhằm tiêu diệt nó Đó là lý do tại sao công nghệ có nguồn gốc từ ARPAnet hiện nay đang được xuất cảng một cách rộng rãi Mạng Internet nguyên thủ được thiết kế nhằm mục đích phục vụ việc cung cấp thông tin cho giới khoa học, nên công nghệ của nó cho phép mọi hệ thống đều có thể liên kết với nó thông qua một cổng điện tử Theo cách đó, có hàng ngàn hệ máy tính hợp tác, cũng như nhiều hệ thống dịch vụ thư điện tử có thu phí, như MCI và Compuserve chẳng hạn, đã trở nên thành viên của Internet Với hơn hai triệu máy chủ phục vụ chừng 20 triệu người dùng, mạng Internet đang phát triển với tốc độ bùng nổ, mỗi tháng có thêm khoảng một triệu người tham gia mới Lời khuyên: Hầu hết mọi người đều có thể tham gia vào Internet Nhiều tổ chức loại lớn và vừa có các hệ thống thư điện tử đều có cổng nối vào Internet Cao hơn một mức, các dịch vụ thư điện tử có thu phí (như) Compuserve và MCI dều có các cổng nối vào Internet; một số hệ bảng bulletin địa phương cũng vậy
2) Bus
Đường dẫn điện nội bộ mà theo đó các tín hiệu được truyền từ bộ phận này đến bộ phận khác trong máy tính Máy tính cá nhân có thiết kế bus của bộ vi xử lý theo ba loại đường dẫn: - Bus dữ liệu truyền dữ liệu xuôi ngược giữa bộ nhớ và bộ vi xử lý - Bus địa chỉ xác định vị trí nhớ nào sẽ được đưa vào hoạt động - Bus điều khiển truyền các tín hiệu của các bộ
Trang 7phận điều khiển Người ta sẽ phát triển bus dữ liệu của máy bằng cách nối bộ xử lý với một hoặc nhiều khe cắm mở rộng, và gọi là bus mở rộng ( expansion bus) bus dữ liệu, bus địa chỉ, và bus mở rộng đều được mắc nối theo những hàng dây dẫn song song, cho nên tất cả các bít cần gửi đi sẽ được truyền cùng một lúc đồng thời, giống như 16 hoặc 32 chiếc ô tô dàn hàng ngang cùng chạy về một hướng trên xa lộ cao tốc Có ba loại cấu trúc bus thường gặp phổ biến trong thị trường máy tính IBM PC và tương thích
PC - Bus ISA ( Industry Standard Architecture) Đây là bus 16 bit, đầu tiên được xây dựng để dùng cho các máy tính AT ( Advanced Technology) Bus này bao gồm những khe cắm mở rộng 8 bit để tương thích với các bộ điều hợp cũ, và khe cắm 16 bit dùng cho những bộ điều hợp kiểu AT - Bus MCA ( Micro Chanel Architecture) Loại bus 32 bit sở hữu riêng được dùng trong các máy tính IBM PS/ 2 cao cấp - Bus EISA ( Enhanced Industry Standard Architecture) Loại bus 32 bit, nhưng khác với bus MCA là có thể tương thích ngược với các bộ điều hợp ISA Tính chất rộng rãi của 32 bit chỉ được sử dụng một phần Mặc dù các đường dẫn trong bus nội bộ của bộ xử lý hoạt động ở tốc độ cao phù hợp với bộ xử lý của bạn, nhưng bus mở rộng thì hoạt động với tốc độ thấp hơn nhiều - EISA ở 8 33 MHZ và MCA
ở 10 MHZ bus Local (là một loại đường dẫn tốc độ cao liên kết bộ xử lý của máy tính với vài ba khe cắm mở rộng) đã được xây dựng để tăng tốc độ cho việc hiện hình video trong các chương trình dùng nhiều đồ hoạ như Microsoft Windows chẳng hạn
3) BaseBand ( Băng cơ sở )
Trong các mạng cục bộ, đây là một phương pháp truyền thông, trong đó tín hiệu mạng thông tin được đưa trực tiếp vào cáp trong dạng số không điều biến Các tín hiệu máy tính có thể được truyền qua cáp bằng hai cách: tín hiệu tương tự và tín hiệu số Mạng truyền thông tương tự được gọi là mạng băng rộng ( broadband network) Các mạng truyền thông số được gọi là mạng băng cơ sở Vì các tín hiệu của máy tính là tín hiệu số, cho nên số lượng mạch cần thiết cho một mạng băng cơ sở để truyền dẫn tín hiệu này
ra vào máy tính là rất ít Hơn nữa, nhiều mạng băng cơ sở có thể sử dụng dây cáp hai sợi xoắn (dây điện thoại bình (thường)), cho nên lắp đặt chúng giá rẻ hơn với mạng băng rộng đòi hỏi phải có cáp đồng trục Tuy nhiên, hệ băng cơ sở bị hạn chế về cự ly truyền dẫn và chỉ cho phép thực hiện một kênh truyền thông trong một lúc Hầu hết các mạng máy tính cục bộ đều là mạng băng cơ sở
4) BoardBand (Băng rộng)
Trong các mạng cục bộ, đây là một phương pháp truyền thông tín hiệu tương tự được đặt trưng bởi dải tần rộng Tín hiệu này thường được tách chia ra hoặc truyền dồn ( multiplex) để cung cấp cho các đường truyền thông đa kênh Vì các tín hiệu của máy tính là loại tín hiệu số, nên chúng
Trang 8phải được chuyển đổi bằng một quá trình gọi là biến điệu ( modulation) trước khi chúng được truyền qua mạng tín hiệu tương tự Một modem sẽ thực hiện nhiệm vụ đó Hệ thống dải rộng dùng phương pháp truyền tương tự Vì máy tính là thiết bị số, nên yêu cầu phải có các thiết bị giống như modem ở cả hai đầu cáp truyền để chuyển đối tín hiệu từ số thành tương tự hoặc ngược lại Truyền thông dải rộng có thể mở rộng cự ly khá xa và hoạt động ở tốc độ rất cao Mạng dải rộng cũng giống như mạng truyền hình cáp, có thể truyền hai hoặc nhiều kênh cùng một lúc (các kênh khác nhau về tần số) Do đó mạng truyền thông dải rộng có thể thực hiện truyền cả dữ liệu lẫn tiếng
thành thấp hơn nhiều
Theo nhận định của tôi ( đối với truyền khối dữ liệu nhỏ ) thì chuẩn RS-485 rất linh động Ta có thể chọn số lượng bộ điều khiển ( Master ), bộ nhận ( Slave ), chiều dài cáp, tốc độ truyền, số node cần giao tiếp, và rất tiết kiệm năng lượng
2 Một số đặt điểm của RS-485:
Giá thành thấp:
Các bộ điều khiển ( Driver ) và bộ nhận ( Receiver ) không đắt và chỉ yêu cầu cung cấp nguồn đơn +5V để tạo ra mức điện áp vi sai tối thiểu 1.5V ở ngỏ ra vi sai
Khả năng về mạng:
RS-485 là một giao diện đa điểm ( multi-drop ), nó có thể có nhiều Driver và Receiver, số Receiver có thể lên đến 256 nếu ngõ vào của các Receiver có trở kháng vào cao
Khả năng kết nối:
RS-485 có thể truyền xa 1200m, tốc độ lên đến 10Mbps Nhưng 2 thông số này không xảy ra cùng lúc Khi tốc độ truyền tăng thì tốc độ baud giảm xuống
Ví dụ: khi tốc độ là 90Kbps thì khoảng cách là 1200m,
1Mbps thì khoảng cách là 120m, còn với tốc độ 10Mbps thì khoảng cách chỉ còn 15m
3 Giải thích một số đặc tính RS-485 :
Trang 9 Các đường truyền cân bằng và không cân bằng:
Sở dỉ RS-485 có thể truyền trên một khoảng cách lớn là do chúng sử dụng đường truyền cân bằng Mỗi một tín hiệu sẽ truyền trên một cặp dây, với mức điện áp trên một dây là âm hoặc điện áp bù trên dây kia Receiver sẽ đáp ứng phần hiệu giữa các mức điện áp, được minh hoạ ở hình dưới:
Hình 1.1: Đường truyền cân bằng
Vin
GND
Hình 1.2: Đường truyền không cân bằng
Một thuận lợi lớn của RS-485 là khả năng chống nhiễu tốt Một thuật ngữ khác của đường truyền tín hiệu dạng này là vi sai tín hiệu
TIA/EIA – 485 chỉ định hai đường vi sai là A và B Tại bộ điều khiển ( Driver ) nếu VA > VB thì mức logic ở đầu vào là cao, nguợc lại VA < VB thì mức logic ở đầu vào là thấp Tại bộ nhận ( Receiver ) nếu VA > VB thì mức logic ở đầu ra là cao và ngược lại
Đối với các Receiver đầu vào phải nằm trong tầm –7V + 12 V Mức áp vi sai đầu vào tối đa - 6V VA – VB +6V
Tại sao dùng đường truyền cân bằng có lợi :
Đường truyền cân bằng có ưu điểm bởi hai đường tín hiệu mang dòng gần bằng nhau nhưng ngược dấu Điều này giúp giảm nhiễu trên đuờng truyền bởi hầu hết các điện áp nhiễu điều tăng hay giản điều nhau trên cả hai đường truyền Bất kì một điện áp nhiễu nào tác động lên một dây điều
bị triệt tiêu bởi điện áp bù trên dây kia Đường nhiễi có thể là các dây khác trong cáp hoặc ở bên ngoài Một bộ nhận cân bằng chỉ nhận tín hiệu cần truyền, loại bỏ tín hiệu nhiễu hoặc giảm đi rất nhiều tín hiệu nhiễu
Ngược lại, trong giao tiếp không cân bằng, bộ nhận phát mức điện áp giữa dây tín hiệu và đất Khi có nhiễu chúng sẽ tác động đến mạch, khi gặp mội trường có nhiễu lớn chúng sẽ gây sai lệch mức logic mạch hoạt động sai
Một ưu điểm khác của đường truyền cân bằng là nó có thể triệt tiêu được phần điện áp tiềm tàng giữa bộ phát và bộ nhận Trong kết nối ở
Trang 10khoảng cách lớn, điện thế ở các Driver và Reciver có thể khác nhau nhiều vôn
Ơû một đường truyền không cân bằng, điện thế đất khác nhau có thể làm cho Receiver không đọc được đầu vào Còn ở đường truyền cân bằng thì chúng không quan tâm đến điện thế đất vì nó chỉ đọc phần điện thế hiệu giữa hai dây truyền tín hiệu
Trong thực tế, các thành phần RS-485 chỉ phù hợp với sự chênh lệch thế đất nhất định Một cách để triệt tiêu hoặc giảm bớt vấn đề này là cô lập mạng
4 Nguyên tắc hoạt động của RS-485 :
a) Mức áp yêu cầu:
Giao tiếp RS – 485 điển hình sử dụng nguồn cung cấp đơn +5V nhưng mức logic tại đầu phát và đầu thu không phải là mức TTL hay mức CMOS, để có mức ra thích hợp thì VA – VB 1.5V
Điện áp giữa mỗi đầu ra và đất không xác định bằng việc trừ mà mode điện áp chung phải nằm trong tầm 7V Nếu như giao tiếp cân bằng một cách hoàn hảo thì các đầu ra offset bằng một nửa với nguồn cung cấp Bất cứ sự cân bằng nào cũng làm tăng hay giảm mức offset
Hình bên dưới chỉ áp ra A và B của một bộ điều khiển RS-485 Biên độ đầu ra gần 3V thay đổi từ +1 +4V hoặc –1V -4V so với đất Nguồn cung cấp cho bộ điều khiển là +5V
A
B
Hình 1.3: Ngỏ ra của bộ phát RS-485
Hình bên dưới chỉ mức điện áp vi sai giữa dây A và B ở đầu ra của Driver Biên độ đỉnh đỉnh của áp ra là 6V gấp hai lần biên độ đỉnh đỉnh của điện áp trên mỗi đường dây
Hình 1.4: Ngỏ ra vi phân của bộ phát RS-485
Trang 11Nếu như một đầu ra đóng mở trước một đầu ra khác thì điện áp đầu ra
vi sai đóng mở chậm hơn và điều này giới hạn tốc độ truyền của mạng Thời gian lệch ( Skew ) là khoảng thời gian đóng mở chênh lệch giữa 2 đầu ra Các Driver của RS-485 được thiết kế sao cho tối thiểu thời gian lệch
Tại Receiver, điện áp 2 đầu vào A và B chỉ cần 200mV Nếu VA - VB
0.2V thì đầu thu sẽ đọc là mức logic 1, ngược lại là mức logic 0 nếu như điện áp vi sainày < 0,2V thì mức logic không xác định
Sự khác nhau giữa điện áp Driver và Receiver là giới hạn nhiễu cho phép 1,3V điện áp vi sai có thể yếu đi hoặc bị nhiễu kí sinh khoảng 1,3 V thì đầu thu vẫn nhận được mức logic đúng
Trong hầu hết các mạng, điện áp đầu ra bộ phát lớn hơn 1,5V Do đó giới hạn nhiễu lớn hơn Một bộ Driver cần cấp nguồn 3V cũng có thể có áp
ra vi sai giữa 2 đầu ra là 1,5 V
TIA/EIA – 485 định nghĩa : B > A mức 1; A > B mức 0 Sử dụng định nghĩa này các chip giao tiếp RS-485 thì làm ngược lại
b) Dòng yêu cầu:
Dòng tổng trong RS-485 thay đổi theo trở kháng vào của thành phần trong mạng gồm: các bộ phát, các đầu thu, cáp và các thành phần đầu cuối Trở kháng ra của bộ phát thấp và trở kháng của cáp thấp cho phép việc đóng mở được nhanh hơn và bảo đảm bộ thu sẽ nhận được tín hiệu với tốc độ cao nhất có thể Nếu trở kháng của đầu thu cao thì nó sẽ làm giảm dòng trong mạng và kéo dài tuổi thọ của bộ nguồn
Việc sử dụng thành phần đầu cuối sẽ có lợi đối với dòng trong mạng Khi không có các thành phần đầu cuối thì trở kháng vào của các bộ thu sẽ ảnh hưởng lớn đối với điện trở tổng nối tiếp Tổng trở kháng vào thay đổi theo các bộ thu và trở kháng vào của chúng
Một bộ phát RS-485 có thể lái đến 32 đơn vị tải TIA/EIA – 485 xác định một đơn vị tải dưới dạng dòng yêu cầu Một bộ thu tương đương một đơn vị tải, mà tải này không kéo nhiếu hơn một lượng dòng xác địmh tại đầu vào và điện áp được xác định theo tiêu chuẩn Khi áp tại đầu thu là 12V thì một đơn vị tải – Bộ thu sẽ không kéo nhiều hơn 1mA Để đạt được yêu cầu này thì một bộ thu phải có một điện trở đầu vàu ít nhất là 12 K, mắc giữa mỗi đầu vi sai với Vcc hay GND tùy thuộc vào chiều dòng điện Nếu thêm một bộ thu thì điện trở tương là 6000 Nếu có 32 đơn vị tải thì
R tương đương là 375
5 Chuyển đổi sang TTL:
a) Song công ( Full-Duplex ):
RS-485 được thiết kế để dùng cho hệ thống nhiều node ( multi-drop) Hầu hết mạng RS-485 là bán song công sử dụng nhiều bộ phát và bộ thu,
Trang 12cùng chia sẽ một đường truyền tín hiệu Nhưng chúng ta cũng có thể sử dụng RS-485 ở dạng song công, ở đó mỗi hướng sẽ có đường truyền tín hiệu riêng của nó Việc chuyển đổi mạng RS-232 sang RS-485 song công dễ dàng thực hiện bằng phần mềm
Với mạng loại này ta có thể sử dụng SN75179B ở hai đầu bộ phát và bộ thu Mạng này gồm 1 bộ phát dùng chuyển đổi 5V TTL sang RS-485 và một bộ thu dùng chuyển RS-485 sang 5V TTL
Đây là một giải pháp đơn giản khi ta muốn tạo một mạng song công, khoảng cách xa giữa các vi điều khiển Các chip giao tiếp RS-485 nhỏ hơn, đơn giản và rẻ hơn trong việc chuyển đổi sang RS-232
Hình 1.5: Kết nối song công nhiều node
Trong một mạng gồm có chủ và tớ, ở đó node chủ dùng để điều khiển mạng và cho phép việc thu phát của thành phần khác Một cặp dây dùng để nối bộ phát của con chủ với bộ thu của các con tớ, còn một cặp dây khác nối bộ phát của các con tớ với bộ thu của con chủ
Tất cả các con tớ phải được thông tin từ con chủ để biết con nào được cho phép Việc định địa chỉ của con tớ được xác định bằng cặp dây đối lặp Thuận lợi của phương pháp này là tiết kiệm thời gian cho các con tớ bởi vì chúng không đọc thông tin trả lời của các con tớ khác Nếu tất cả các node cùng chia sẽ một đường dữ liệu thì các con tớ phải đọc tất cả mọi thông tin lưu thông trên đường mạng để lấy thông tin từ con chủ gởi tới
b) Bán song công:
Rất nhiều mạng dùng kết nối 485 là bán song công với nhiếu bộ phát và thu cùng chia sẽ một đường tín hiệu
Khi một mạng có 3 hay nhiều node thì tại một thời điểm chỉ có một node được thu hay phát Việc sử dụng 2 đường truyền tín hiệu là thuận lợi khi chỉ có 2 thiết bị ( một chủ, một tớ ) vì mỗi node có thể thu phát bất kì lúc nào mà không sợ có sự xung đột Nhưng nếu có nhiều hơn một bộ phát trên cùng một cặp dây thì không có sự đảm bảo rằng đường truyền tín hiệu là “ rỗng”(free) khi bộ phát cần truyền
Trên các vi điều khiển cho phép xây dựng các bit port như là đầu vào
hay đầu ra, chúng ta có thể gởi hay nhận một bit đơn , tái tạo lại bit khi cần
Trang 13thiết Chúng ta cũng có thể làm điều này để sử dụng ít nhất số bit port có thể hoặc sử dụng bán song công để tiết kiệm dây
6 7
8
RO RE DE DI
D A
B +V CC
6 7
8
RO RE DE DI
D A
B +V CC
CONT ROL OUT
6 7
8
RO RE DE DI
D A
B +V CC
Hình 1.6: Kết nối bán song công
Chip bao gồm một bộ phát dùng đổi mức logic TTL sang RS-485 và một bộ thu dùng chuyển RS-485 sang mức TTL và ở mỗi chip đều có một đầu vào cho phép Không giống như SN75179B chip này chỉ có một cặp chân RS-485 và chân cho phép vào, dùng xác định liệu bộ phát hay bộ tu là tích cực
Khi đầu vào cho phép của bộ phát ở mức thấp thì ngõ ra của bộ phát ở trạnh thái tổng trở cao Khi đầu vào cho phép của bộ thu ở mức cao thì đầu
ra của bộ thu ở trạng thái tổng trở cao
6 Kết nối mạng và phương thức truyền:
Đặc điểm của mạng dùng chuẩn RS-485 là phải chung mass, mức điện áp chung: -7 +12v
a Dạng kết nối tổng quát:
Hình bên dưới mô tả cách kết nối tổng quát, mỗi node có chip thu phát SN75176B ( tương tự Max485, LTC485, DS3695 )
Mạch có điện trở 120 nối song song với ngõ vào, ra vi sai ( chân 6-7 ), và hai diện trở 560 kéo lên
Với cách kết nối như vậy thì để truyền data từ bộ điều (Master) đến các thiết bị chấp hành ( Slave ) ta phải set chân 2-3 lên mức cao, tương tự
Trang 14khi các Slave gởi Message về Master, chân 2-3 cũng phải lên mức cao Còn khi nhận Message thì ta phải set chân 2-3 xuống thấp
Hình 1.7: Dạng kết nối tổng quát của mạng dùng chuẩn RS-485
b Kết nối tự động :
Vấn đề: khi thiết kế mạng dùng chuẩn RS-485, do tất cả các node
cùng chia sẽ một đường data, nhưng tại một thời điểm chỉ có một bộ điều khiển hoạt động Tức là trước khi node này phát thì node khác không được phát
Hình dưới đây cho ta cách kết nối tự động không cần phải set chân 2-3 mỗi khi phát
Hình 1.8: Kết nối tự động
Trang 15Với mạch hình trên thì khi ta viết chương trình điều khiển, ta không cần phải chốt bộ điều khiển, vì dùng 75176B kết hợp với 555, sẽ cho ta thời gian delay đủ để bộ điều này hoạt động ( Enable ) thì bộ điều khiển khác không hoạt động ( Disable ) Giải thích cụ thể nguyên lý hoạt động của mạch trên, sẽ được đề cập trong phần thiết kế mạch
7 Việc cho phép bộ điều khiển ( Driver ):
Một việc quan trọng trong sử dụng mạng bán song công là việc điều khiển cho phép các bộ điều khiển ( bộ phát ) Khi một bộ phát đang chuyển thì nó vẫn còn được cho phép cho đến khi nó thực hiện xong việc chuyển data Sau đó nó không được cho phép trước khi các node khác thực hiện việc phát
Hình 1.9: Tín hiệu cho phép của bộ phát và 1 byte data được phát
Mối quan hệ giữa một byte dữ liệu phát và tín hiệu cho phép bộ phát Có 3 cách để điều khiển chân cho phép của 485:
Hình trên 1 bit sẽ điều khiển cả bộ thu và bộ phát trên mỗi chip, vì chân cho phép bộ phát tích cực mức cao, trong khi đó chân cho phép bộ thu tích cực mức thấp Do đó chỉ có một chân được cho phép tại một thời điểm
Trong nhiều mạng, đầu ra bộ thu lúc nào cũng được tích cực do đó nó có thể được nối với đất Bit điều khiển chỉ nối với chân Enable của bộ phát Việc bỏ chân Enable của bộ thu cung cấp một cách đơn giản cho
1 node để phát hiện khi nào thì một chuyển đổi hoàn thành, bằng cách đọc dữ liệu truyền trở lại
Để linh hoạt hơn ta có thể sử dụng các bit riêng rẻ để điều khiển các chân Enable của bộ phát và bộ thu
Trang 16I Giới Thiệu:
Có hai tiêu chuẩn chính yếu áp dụng cho quá trình truyền dữ liệu nối tiếp là vòng dòng điện 20mA và RS-232 Vòng dòng điện 20mA sử dụng tín hiệu dòng điện để mang dữ liệu, còn chuẩn RS-232 sử dụng các mức điện áp
Ơû các nước phát triển khái niệm vòng dòng điện đã quen thuộc với nhiều người làm việc trong lĩnh vực đo lường, điều khiển và tự động hóa trong các cơ sở sản xuất công nghiệp Khái niệm vòng dòng điện còn mới mẻ và ít được trình bày trong các giáo trình Dưới đây tôi giới thiệu vài nét về nguồn gốc, các chuẩn vòng dòng điện và nguyên tắc hoạt động, ứng dụng của chúng:
II Vòng dòng điện:
1) NGUỒN GỐC:
Mô hình của hệ thống truyền dữ liệu bằng vòng dòng điện bắt nguồn từ phương pháp tiêu chuẩn đã sử dụng trên các máy điện báo in chữ Các máy đánh điện báo kiểu cơ điện đã được dùng khá rộng rãi vào cuối những năm 1930 với thiết bị từ các công ty như Kleinschnitt và “ The Teletype Corporation” ( Mỹ )
2) TRUYỀN DỮ LIỆU BẰNG VÒNG DÒNG ĐIỆN:
Thay cho việc dùng mức điện áp, việc truyền dữ liệu còn có thể được tiến hành nhờ sự chuyển mức dòng điện, hay nói khác đi là thay đổi giá trị dòng điện Giao diện nối tiếp cũng giới thiệu 2 khả năng, để tùy chọn một trong hai phương pháp truyền
Giao diện dòng 20mA ra đời trước RS-232 được xem như một tiêu chuẩn Giao diện này còn được gọi là giao diện TTY hoặc thường gọi là vòng dòng điện, mô tả trạng thái logic qua tác động cho hoặc không cho dòng điện 20mA đi qua Giao diện dòng 20mA được chia ra làm hai phần: chủ động ( có nguồn dòng không đổi 20mA riêng ) va øbị động ( dòng điện 20mA được tạo ra từ thiết bị ghép nối ) Như vậy, thì bao giờ cũng có một thành viên giao tiếp gọi là chủ động còn thành viên kia gọi là bị động
Ơû giao diện dòng 20mA có những tín hiệu sau:
Trang 17 TxD ( + ) dữ liệu gửi ( đường dẫn đi )
TxD ( - ) dữ liệu gửi ( đường dẫn về )
RxD ( + ) dữ liệu nhận ( đường dẫn đi )
RxD ( - ) dữ liệu nhận ( đường dẫn về ) Thông thường thì ở giao diện dòng 20mA không có tín hiệu bắt tay khi thiết lặp đường truyền Với giao diện này, việc truyền dữ liệu trên 1.000 m ét là hoàn toàn có thể thực hiện được Nhiễu sinh ra trên đường truyền ảnh hưởng cảm ứng lên cả đường dẫn tín hiệu đi và đến, do đó nhiễu bị loại trừ Muốn thế đường dẫn đi và đường dẫn về ( còn được gọi là đường đảo và không đảo ) phải đặt sát nhau, sao cho khi một tín hiệu nhiễu xuất hiện thì cùng ảnh hưởng cả lên hai đường tín hiệu, xoắn hai dây với nhau làm đường truyền Tất nhiên với giao tiếp này không thể có được tốc độ truyền cao
Có 2 chuẩn vòng điện khác nhau: 60mA và 20mA trong đó chuẩn 60mA đã lỗi thời Lý do để vòng dòng điện trở nên phổ biến đối với các máy điện báo in chữ là tính hiệu quả của phương pháp Cụ thể mỗi chữ in
ra nhờ việc sử dụng các vòng dòng điện, trong đó mỗi chữ tương ứng với một nhóm lựa chọn từ 5 đến 7 cuộn dây có lõi sắt, kích hoạt các thanh gạt bên trong máy Các cuộn dây này được nới thành các dãy với số lượng các cuộn dây khác nhau, tùy thuộc vào kí tự cần được truyền Thực tế cho thấy trong trường hợp này việc truyền điện áp không hiệu quả bằng việc truyền dòng điện
Có ít nhất là 3 kiểu thiết bị vòng dòng điện khác nhau:
Chỉ có máy in
Chỉ có bàn phím
Có cả bàn phím và máy in kết hợp với nhau
Có 3 kiểu truyền thông được sử dụng với các hệ thống vòng dòng điện đó là: đơn công, bán song công và song công
Hệ thống đơn công: cho phép truyền thông tin theo một hướng Như
vậy một bộ nhận sẽ luôn nhận thông tin, còn bộ truyền sẽ luôn truyền thông tin và không bao giờ xảy ra việc thay đổi vai trò; luồng dữ liệu luôn
đi theo một hướng
Hệ thống bán song công và song công: cho phép các thông tin theo hai
chiều, nhưng chỉ theo một hướng ở từng thời điểm Các vòng dòng điện đơn công và bán song công chỉ cần một cặp đường truyền, trong khi vòng song công cần hai cặp đường truyền, mỗi cặp cho một hướng Tuy nhiên hoạt động song công vẫn có thể thực hiện trên một cặp dây xoắn đơn giản nếu như các mức dữ liệu trước hết được biến đổi thành tín hiệu âm thanh, cụ thể hơn là thành tín hiệu có tần số nằm trong vùng tai nghe được ( audio
Trang 18tone ) Trong trường hợp ấy, hệ thống sẽ sử dụng các cặp khác nhau của tín hiệu để diễn tả mức logic 0 và 1, mỗi cặp cho một hướng
a)VÒNG DÒNG ĐIỆN 60mA:
Vòng dòng điện 60mA bây giờ đã lỗi thời và chỉ tìm thấy trong các thiết bị cũ Hệ thống 60mA được mô tả trên hình cho thấy một trong các máy điện báo in chữ có thể được nối với cổng lối ra nối tiếp tương thích TTL Trong nhiều trường hợp, một bit của một cổng song song sẽ được cấu hình như cổng nối tiếp thông qua hoặc là phần mềm hoặc là bổ sung phần cứng Trên hình 4.2, bit có ít ý nghĩa nhất (LSB) của cổng song song được chỉ định như đầu ra nối tiếp
R1
22 0
R2 2
Máy đ ie än b áo
6 0 W PM Bau d ot
Vòng dòng điện loại 60mA
Mức TTL từ cổng ra nối tiếp trên hình 4.2 điều khiển cực B của TST công suất, chịu điện áp cao Hai cực C, E của TST được đấu nối tiếp với dòng điện 60mA và như vậy nó hoạt động như một chuyển mạch (công tắc) Khi mức TTl là High, TST T1 mở và dòng điện chạy trong vòng Ngược lại, khi bit TTL là LOW, TST chuyển sang trạng thái cấm và sẽ không có còng điện đi qua mạch Do đó TST cung cấp một mức logic 1, khi bit TTL là High, và mức logic 0 khi là Low
Vòng dòng điện được nuôi từ nguồn một chiều 120 đến 140 V, có một biến trở điều chỉnh được mắc nối tiếp (R2), được sử dụng để đặt gần đúng mức dòng điện
Mức dòng điện trong vòng dòng điện 60mA được điều chỉnh bằng cách ngắt vòng và chèn vào mạch một mili ampe kế với thang đo 0 đến 100mA
Phím sẽ được nhấn trên bàn phím, hoặc trong trường hợp của hình 4.2, một mức HIGH phải được viết vào cổng lối ra nối tiếp Tác động này sẽ đóng mạch vòng và cho phép dòng đi qua Chiết áp R2, được nối với biến trở, khi đó sẽ tiến hành điều chỉnh cho dòng điện đi qua xấp xỉ 60mA
Nhược điểm: dễ làm hỏng linh kiện do dòng lớn
Cách khắc phục: dùng mạch cách ly, bộ ghép nối quang
Trang 19
D1 5.6V
Bộ ghép nối quang
R4 2.2K R1
Mạch ghép nối quang
b)VÒNG DÒNG ĐIỆN 20mA
Chuẩn vòng dòng điện lớn hơn đã sử dụng dòng điện với cường độ 20mA cho mức logic 1 và dòng điện từ 0 đến 2mA cho mức logic 0 Các máy với vòng dòng điện 60mA đã cũ, trên đó sử dụng mã điện báo Baudot
5 bit, trong khi hầu hết các máy sử dụng vòng 20mA đều sử dụng mã ASCII
Bộ ghép nối quang
Bộ biến đổi TTL sang tín hiệu dòng 20mA
hình trên chỉ ra một phương pháp đơn giản cho phép sử dụng bộ ghép nối quang để ghép nối cổng nối tiếp của máy tính với một vòng dòng điện 20mA Nguyên tắc hoạt động: khi dữ liệu vào là HIGH , thì lối ra của U1 chuyển sang mức LOW, do đó cực âm của Diod sẽ nối đất Tác động này làm TST dẫn, và cho phép dòng điện đi qua mạch Diod D1 dùng để ngăn ngừa hỏng hóc và những phiền phức khác gây ra bởi xung điện cảm ứng khi phát sinh khi các cuộn dây phóng điện
c)VÒNG DÒNG ĐIỆN 4 ĐẾN 20mA:
Trong kỹ thuật điều khiển các quá trình công nghiệp người ta thường sử dụng hệ thống vòng dòng điện để truyền các số liệu đo lường Hình 4-9 chỉ ra một hệ thống tiêu biểu trong đó 3 thiết bị khác nhau thực hiện trong cùng một vòng dòng điện
Trang 20Bộ biến đổi
áp ra dòng
Máy ghi Analog Máy tính số Bộ điều khiển
Vòng dòng 4 - 20 mA
Vòng dòng điện 4 – 20mA dùng trong kỹ thuật đo lường
Trên các bộ chỉ thị dòng điện dưới dạng số đang lưu hành trên thị trường, ta thấy dải đo không phải là 0 20 mA mà là 4 20 mA Các bộ chỉ thị này sử dụng cho một loại vòng dòng điện khác, có phạm vi các giá trị cho phép từ 4 20mA Mục đích của việc sử dụng vòng dòng điện này là truyền các giá trị nằm trong một vùng, mô tả các thông số đang được đo Toàn bộ vùng có độ rộng là 16 mA, nhưng do việc chọn giá trị nhỏ nhất là 4mA có thể tăng dòng điện cực đại 20mA Nguyên nhân của sự lệch và cũng là ưu điểm của vòng dòng điện 4 đến 20mA so với các vòng dòng điện khác Do mức logic 0 của vòng dòng điện 20mA là 4mA nên dễ dàng phân biệt giá trị zero và trạng thái dòng điện bằng 0 ( LOW )
1) Đặt vấn đề:
Ghép nối qua cổng nối tiếp RS-232 là một trong những kỹ thuật được sử dụng rộng rãi nhất để ghép nối các thiết bị ngoại vi với máy tính Qua cổng nối tiếp có thể ghép nối chuột, modem, máy in, bộ biến đổi A/D, các thiết bị đo lường … Số lượng và chủng loại các thiết bị ngoại vi ghép nối qua cổng nối tiếp đứng hàng đầu trong số các khả năng ghép nối với máy tính Các cách ghép nối này sử dụng phương pháp truyền thông theo kiểu nối tiếp, trong đó ở mỗi thời điểm chỉ có một bit được gởi đi dọc theo một đường dẫn Đặt điểm này khác với phương pháp truyền thông theo kiểu song song, trong đó nhiều bit được gởi đi đồng thời Ưu điểm chính của kiểu truyền nối tiếp so với cách truyền song song là một đường dẫn được sử dụng để truyền còn một đường dẫn khác dùng để nhận
Chuẩn RS-232 khi mới chỉ là chuẩn không chính thức ( defacto) đã được nhiều công ty máy tính và thiết bị đo lường chấp nhận Sau đấy, Hiệp hội các nhà công nghiệp điện tử ( EIA: The Electronic Industries Association ), đã xây dựng thành một tiêu chuẩn chính thức, vào năm 1962 Đáng tiếc là tiêu chuẩn này chỉ cho phép sử dụng đường truyền ngắn, với tốc độ bit thấp, ví dụ tốc độ truyền theo bit bằng 19.600 bit/sec, với khoảng cách cực đại bằng 20m Các tiêu chuẩn truyền thông nối tiếp ra đời sau, như RS-422, RS-449, RS-485, cho phép truyền trên đường cáp rất dài, với
Trang 21tốc độ bit rất cao Chẳng hạn RS-422 cho phép tốc độ truyền lớn hơn 10Mbps, còn khoảng cách trên 1000m, trong khi có thể sử dụng cáp hai sợi xoắn, cáp đồng trục hoặc cáp quang Các chuẩn mới cũng có thể được sử dụng để xây dựng các mạng máy tính
2) Vài nét về nguồn gốc:
Sau một thời gian lưu hành không chính thức, đế năm 1962, Hiệp hội các nhà Công Nghiệp Điện Tử (EIA) đã cho ban hành chuẩn RS-
232 áp dụng cho cổng nối tiếp Các chữ RS được viết tắt từ Recommended Standard ( Tiêu chuẩn đã giới thiệu)
Có hai phiên bản RS-232 được lưu hành trong thời gian tương đối dài là RS-232B và RS-232C Cho đến nay RS-232B là phiên bản cũ còn RS-232C thì ra đời sau và hiện vẫn còn tồn tại Vì chuẩn RS-232B đã lỗi thời từ nhiều năm, nên trong các tài liệu ít đề cập đến Tiêu cuẩn đang được áp dụng hiện nay là RS-232C, gọi ngắn gọn là RS-232 Ở các nước Tây Aâu, chuẩn ghép nối RS-232 còn gọi là chuẩn V.24
EIA đã công bố tiêu chuẩn RS-232C với nổ lực nhằm tạo ra khả năng để ghép nối các thiết bị do nhiều nhà sản xuất làm ra mà không đòi hỏi có tiêu chuẩn đặt biệt cho từng trường hợp
Ý tưởng để xây dựng tiêu chuẩn RS-232 là phải sử dụng cùng loại đầu nối dây, ví dụ đầu nối 25 chân hoặc 9 chân, được nối theo cùng một cách và phải sử dụng cùng mức điện áp khi biểu diển các số nhị phân 1 và
0 tương ứng Với ý tưởng này, nếu như mọi người điều tham gia vào tiêu chuẩn theo cùng một cách thì có thể nối các thiết bị với cổng RS-232 của các hãng khác nhau, các mẫu mã khác nhau mà không cần có thêm điều kiện nào Các modem, các modem, các máy in và nhiều thiết bị khác có thể được đấu nối vào giao diện RS-232 Ngày nay, hầu hết các máy tính đều trang bị một hoặc hai cổng nối tiếp RS-232, và tất cả đều có khả năng sử dụng RS-232, ít nhất là như một khả năng tùy chọn từ nhà sản xuất máy tính hoặc từ phía người sử dụng máy tính
Việc thiết kế cổng RS-232 cũng tương đối dễ dàng, đặc biệt nếu như chọn chế độ hoạt động là không đồng bộ ở tốc độ truyền dữ liệu thấp, chẳng hạn như trong khoảng 110 đến 1200 baud
Các mạch điện tích hợp cả bộ phát và bộ nhận RS-232C đã được các nhà sản xuất khác nhau thiết kế và chế tạo, ví dụ Motorola, National Semiconductors Các chip bộ/ bộ đệm RS-232 tiếp nhận với mức điện áp TTL ở lối vào và biến đổi chúng thành các mức dành riêng cho RS-232 để truyền Các bộ nhận RS-232 làm việc theo cách ngược lại: tiếp nhận tín hiệu lối vào theo chuẩn RS-232 và biến đổi các tín hiệu sang các mức TTL tương ứng Các bộ phận này đều nằm trên bản mạch chính hoặc trên card vào/ra, nghĩa là ở phía sau của cổng RS-232
Trang 223) Truyền dữ liệu nối tiếp:
Có 2 loại định dạng truyền dữ liệu nối tiếp là: định dạng đồng bộ và định dạng không đồng bộ
a) Định dạng đồng bộ:
Trong thu phát đồng bộ, tất cà các thiết bị sử dụng chung nguồn xung clock của một thiết bị hoặc một nguồn bên ngoài
Clock
1 Data
0 Bit 0 Bit 7
1 0
(41H)
Phát đồng bộ – MSB
Mỗi bit phát được xác định bằng cạnh lên hoặc cạnh xuống của xung clock Bên nhận sử dụng xung clock đấy để xáx định khi nào thì bit được đọc vào
Thu phát đồng bộ chỉ áp dụng cho khoảng cách ngắn, chiều dài cable tối đa là 50m hoặc ít hơn Với khoảng cách lớn, việc thu phát đồng bộ ít được dùng vì cần truyền xung clock, mà điều này yêu cầu một dây phụ ( extra line ), chính vì thế dễ nhiễu
b) Định dạng bất đồng bộ:
Trong thu phát bất đồng bộ ( asynchronous ) kết nối không cần dây clock Mỗi byte được phát gồm bit Start để đồng bộ clock, và có một hoặc nhiều hơn một bit Stop để báo kết thúc việc phát một từ ( word )
Port RS-232 ( cổng COM ) trên PC sử dụng định dạng không đồng bộ để thông tin với modems và các thiết bị khác
Thu phát đồng bộ có thể sử dụng cho nhiều loại định dạng, phổ biến nhất là 8-N-1 ( 8 bit data, không Parity, 1 bit Stop ) Mỗi byte data gồm 1 bit Start ( bit 0, LSB ) và 1 bit Stop
Data
Start
0 Bit
Stop 0
0
Bit 7 Bit 1
1 0
Bit 0 (41H)
Thu phát bất đồng bộ – LSB
Trang 234) Các đặt trưng điện:
Các điện áp đường truyền:
Tiêu chuẩn RS-232 đầu tiên ra đời đã mang vẻ lỗi thời của các chuẩn TTL Lý do là chuẩn RS-232 vẫn sử dụng các mức điện áp tương thích TTL để mô tả các mức logic 0 và 1, giống như trường hợp cổng máy
in ( cổng song song ) Ngoài mức điện áp, tiêu chuẩn cũng cố định các giá trị trở kháng tải được đấu vào bus của bộ nhận và các trở kháng của bộ phát/bộ đệm ( drivers)
Mức điện áp của hai tiêu chuẩn 232 cải tiến ( 232B và 232C ) được miêu tả trên hình 3-1 trong phiên bản cũ hơn, RS-232B, mức lôgic ‘1’ là một điện áp bất kỳ, trong phạm vi từ –5 đến –25V, trong khi logic ‘0’ là bất cứ mức điện áp nào nằm trong khoảng +5V đến +25V Các mức điện áp trong khoảng từ –3V đến +3V là trạng thái chuyển tiếp, trong khi các phạm vi từ 3V đến 5V không được xác định và sẽ dẫn đến kết quả không thể dự tính trước nếu như được sử dụng; tình trạng này đã xuất hiện trong các hệ thống được thiết kế sơ sài
-5
-3
Không xác địnhĐiện áp(V) 0
Trong chuẩn RS-232C, để có được tốc độ truyền dữ liệu nhanh hơn, người ta sử dụng khoảng chênh lệch hẹp hơn giữa mức logic ‘0’ và ‘1’ Các giới hạn trên đối với mức logic 0 và logic 1 là 12V, chứ không dùng giới hạn 25V như trong chuẩn RS-232B Nếu không có các xung xuất hiện trên
Trang 24đường dẫn thì mức điện áp tương đương với mức HIGH, tức là –12V Hình 3-2 chỉ ra một ví dụ về mức điện áp và dạng của tín hiệu được truyền
Bit S tart
Bit S top
LOW HIGH
+12V -12V
T = 1/fBaud
0,52ms D0 D1 D2 D3 D4 D5 D6 D7
Các mức điện áp và dòng dữ liệu với tốc độ 19.200 baud
Ngoài việc thu hẹp giới hạn điện áp, chuẩn RS-232C mà ngày nay đang áp dụng đã cố định tải trong phạm vi từ 3.000 đến 7.000, và trở kháng ra của bộ đệm thấp hơn trước đó Đồng thời, bộ đệm cần phải duy trì một tốc độ tăng điện áp ( slew rate ) bằng 30V trong một s ( 30V/s ) Các
vi mạch Motorola loại MC1488 và MC1489 đã hoàn toàn thoả mãn các thông số kỹ thuật này
Các yêu cầu về mặt điện trong chuẩn RS-232 như sau:
1 Mức logic 1(mức dấu) nằm trong khoảng: -3V đến –12V; mức logic 0(mức trống ) nằm trong khoảng: +3V đến +12V
2 Trở kháng tải về phía bộ nhận của tải phải lớn hơn 3.000
nhưng phải nhỏ hơn 7.000
3 Tốc độ truyền nhận dữ liệu cực đại là 100kbit/sec
4 Các lối vào của bộ nhận phải có diện dung nhỏ hơn 2.500
pF
5 Độ dài của cáp nối giữa máy tính và thiết bị ghép nối qua cổng nối tiếp không thể vượt quá 15m nếu không sử dụng modem
6 Các giá trị tốc độ truyền dữ liệu chuẩn là 50,75, 110, 150,
300, 600, 1.200, 2.400, 4.800, 9.600, 19.200, 28.800, … , 56.600 baund
Hình 3-2 mô tả các mức điện áp và độ rộng xung khi truyền một ký tự với tốc độ bằng 19.200
Trang 25
5) Khuông mẫu khung truyền:
Hình sau đây thí dụ về một ký tự được truyền theo frame gồm :
1 bit bắt đầu, 8 bit dữ liệu, 1 bit chẵn lẻ, và 1 bit kết thúc
RS-232 sử dụng cách truyền thông tin theo kiểu không đồng bộ, khuôn mẫu dữ liệu với các bit bắt đầu và dừng, như chỉ ra trên hình 3-4 Ta có thể thấy rõ là tại một thời điểm chỉ có một kí tự được truyền đi và có thời gian phân cách giữa chúng Khoảng thời gian trì hoãn này thực chất là khoảng thời gian hoạt động không hiệu quả và được đặt ở mức logic cao ( -12V ) như chỉ ra trên hình 3-4 Bo truyền gởi một bit start để thông báo cho bộ nhận biết một kí tự sẽ được gởi đến trong lần gởi bit tiếp theo Bit bắt đầu này luôn ở mức 0 Tiếp theo 5, 6 hoặc 7 bit dữ liệu được gởi dưới dạng
kí tự mã ASCII 7 bit, tiếp theo là một bit chẵn lẻ và cuối cùng là 1, 1.5, 2 bit stop Hình 3-5 chỉ ra một khuôn dạng khung truyền một kí tự ‘A’ và sử
dụng tính chẵn lẻ là lẻ Khoảng thời gian phân cách của một bit đơn quy định tốc độ truyền Cả bộ đệm truyền và nhận cần phải được đặt ở củng
khoảng thời gian bit dó hay nói cách khác là bộ truyền và nhận phải có cùng tốc độ baund Việc thiết lặp đồng bộ chỉ mang tính tương đối để bộ truyền và nhận có tốc độ xấp xỉ nhau, lý do là tín hiệu mang dữ liệu chỉ xuất hiện trong thời gian tương đối ngắn
Ví dụ trên hình 3-5 mô tả giản đồ mức logic thể hiện một khung truyền dữ liệu nối tiếp RS-232 sử dụng: 1 bit start, 7 bit data, 1 bit parity, 2 bit stop Đây là một đoạn của thông báo gửi trên luồng dữ liệu sau đây:
Bit đầu tiên gửi
8 bit dữ liệu 11001001B Bit bắt đầu (mức 0)
Trạng thái đánh dấu (mức 1)
Trang 26{idle: khoảng trống } 11111 { bit bắt đầu } 0 {‘A’} 1000001 { bit parity } 0 { các bit stop } 11 { bit bắt đầu } 0 {‘p’} 0000111 { bit parity } 1 { các bit stop } 11 {idle} 11111111 { bit bắt đầu } 0 {‘p’} 0000111 { bit parity } 1 { các bit stop } 11 {idle} 11 { bit bắt đầu } 0 {‘L’} 0011001 { bit parity } 1 { các bit stop } 11
Như vậy thông điệp đã gửi là ‘AppL’
BIT CHẴN LẺ:
Thực chất quá trình kiểm tra lỗi khi truyền dữ liệu là bổ sung thêm dữ liệu vào dòng dữ liệu được truyền để tìm ra hoặc sửa chữa lỗi trong quá trình truyền Chuẩn RS-232 sử dụng một kỹ thuật đơn giản gọi là chẵn lẻ để có khả năng phát hiện lỗi
Một bit chẵn lẻ sẽ được bổ sung vào dữ liệu được truyền để cho thấy số các số 1 ( các bit có giá trị bằng 1 ) được gởi trong một khung truyền là chẵn hay lẻ Đây là một phương pháp đơn giản để mã hoá lỗi và chỉ cần đến một cổng XOR để tạo ra bit chẵn lẻ Bit chẵn lẻ bổ sung vào dữ liệu được truyền bằng cách chèn nó vào một vị trí chính xác của bit trong thanh ghi dịch sau khi đã đếm xem có bao nhiêu số 1 đã được gởi
Một bit chẵn đơn giản chỉ có thể tìm ra một số lẻ các lỗi, chẳng hạn 1,
3, 5, … Nếu như có một số chẵn các bit lỗi thì bit chẵn lẻ sẽ trùng với bit không mắc lỗi và không phát hiện ra lỗi Kỹ thuật mã hoá lỗi theo cách này thường không được sử dụng trong trường hợp một vài bit mắc lỗi
6) Các đầu nối
Theo chuẩn RS-232-C, đầu nối phần cứng xác định với 25 chân, gọi là chân cắm D-Shell hay DB-25 Nhưng không phải tất cả cổng nối tiếp đều sử dụng đầu nối DB-25 Một số máy tính như PCjr dùng chân cắm BERG 16 chân, máy PC AT thì sử dụng chân cắm D-Shell 9 chân
7) Mô tả chân
DB-25 DB-9 BERG
Trang 275 8 A7 Xóa việc gửi CTS Nhập
8) MAX232 và họ IC dùng biến đổi TTLRS-232-C
Họ IC từ MAX220-MAX249 được sản xuất cho truyền thông EIA/TIA-232E và V.28/V.24, cụ thể là cho những ứng dụng mà không có sẵn điện áp 12V Họ IC này đặc biệt thích hợp cho những hệ thống dùng pin có công suất thấp,
do chúng có chế độ hạ nguồn làm giảm công suất tiêu tán xuống dưới 5W MAX225, MAX233, MAX235, MAX245-MAX247 không cần các linh kiện phụ bên ngoài, được dùng cho những nơi tiết kiệm không gian
Các đặc điểm chính :
Nguồn cung cấp +5V (MAX231/MAX239 dùng nguồn +5V và +12V)
Hạ nguồn công suất thấp nhưng vẫn có thể nhận (MAX223/MAX242)
Hỗ trợ chuẫn EIA/TIA-232E và V.28
Nhiều bộ nhận và phát
Phát hiện đứt mạch đường truyền (MAX243)
a) Cấu tạo chân
b) Mô tả chức năng chân
Ta thấy rằng MAX232 cần có 4 tụ ngoài (mắc vào giữa C1+ và C1-, C2+ và C2-, V+ và nguồn dương, V- và đất để biến đổi điện áp từ 0V đến 5V thành -12V đến +12V phù hợp cho truyền thông theo chuẩn RS-
232 Ngoài ra có 4 bộ khuếch đại đảo nhằm chuyển từ mức TTL ra chuẩn RS-232 và ngược lại
c) Sơ đồ khối và mạch tiêu biểu
Sơ đồ sau đây cho thấy các khối bên trong MAX232 và các linh kiện mắc bên ngoài theo dạng chuẩn :
R2IN
T1IN T2IN
C1+
C1- C2+
C2V+
Trang 28+ 10uF
R2IN R1IN
3 4 5
2 6
8
RS-232 INPUT
RS-232 OUTPUT
BIẾN ĐỔI ĐIỆN ÁP -12V đến +12V
RS-232 OUTPUT
Trang 291) VI ĐIỀU KHIỂN AT89C51:
Do họ MCS-51TM đã trở thành chuẩn công nghiệp nên có rất nhiều hãng sản xuất ra nó, điển hình là ATMEL Corporation Hãng này đã kết hợp rất nhiều tính năng dựa trên nền tảng kỹ thuật của mình để tạo ra các
vi điều khiển tương thích với MCS-51TM nhưng mạnh mẽ hơn
AT89C52 là một vi điều khiển 8 bit do ATMEL sản xuất, chế tạo theo công nghệ CMOS, có chất lượng cao, công suất thấp với 8 KB Flash (flash programmable and erasable read only memory) Thiết bị này được chế tạo bằng cách sử dụng kỹ thuật bộ nhớ không bốc hơi mật độ cao của ATMEL và tương thích với chuẩn công nghiệp MCS-51TM về tập lệnh và các chân ra Flash on-chip cho phép bộ nhớ lập trình được lập trình trong hệ thống bởi một lập trình viên bình thường Bằng cách nối 1 CPU 8 bit với một Flash trên một chip đơn, AT89C51 là một vi điều khiển mạnh (có công suất lớn), cung cấp một sự linh động cao và giải pháp về giá cả đối với nhiều ứng dụng vi điều khiển
Các đặc điểm chủ yếu của AT89C51 :
Tương thích hoàn toàn với họ MCS-51TM của Intel
Bộ nhớ chương trình 8K Byte thuộc loại Flash Memory
Độ bền : 1000 lần ghi/xóa
Tần số hoạt động : 0 Hz đến 24 MHz
3 chế độ khóa bộ nhớ
256 x 8-Bit RAM nội
32 đường I/O lập trình được (4 port)
3 timer/counter 16-bit
8 nguồn ngắt
Chế độ hạ nguồn và chế độ lười tiêu tốn công suất thấp
Trang 301.1 Cấu tạo chân
Tùy theo khả năng (về kinh tế, kỹ thuật, …) mà các nhà sản xuất các sản phẩm ứng dụng có thể chọn một trong 3 kiểu chân do ATMEL đưa ra
1.2 Sơ đồ khối
Trang 311.3 Mô tả chức năng của các chân
Vcc : áp nguồn
GND : đất
Port 0 : là một port I/O 8-bit hai chiều, cực máng hở Khi xuất ra, mỗi
chân port có thể lái 8 đầu vào TTL Nếu ghi các mức 1 ra các chân port thì các chân này có thể dùng như các đầu vào trở kháng cao
Port 0 cũng có thể được cấu hình thành một bus multiplex giữa địa chỉ thấp và dữ liệu khi truy cập chương trình hay dữ liệu từ bên ngoài Trong chế độ này, port 0 có điện trở pullup nội
Port 0 cũng nhận các byte mã chương trình khi lập trình Flash và xuất
ra mã chương trình khi kiểm tra, khi đó cần có điện trở pullup bên ngoài
Port 1 : là một port I/O 8-bit hai chiều có pullup nội Đầu ra port 1 có
thể lái 4 đầu vào TTL Khi viết các mức 1 ra các chân port thì chúng được kéo lên do có điện trở nội và có thể dùng làm đầu vào Khi vai trò là cổng nhập, những chân của port 1 bị kéo xuống thấp sẽ đổ dòng vì có nội trở kéo lên
Hơn nữa, P1.0 và P1.1 có thể được dùng như là đầu vào bộ đếm timer/counter 2 bên ngoài (P1.0/T2) và xung kích (P1.1/T2EX)
Port 1 cũng nhận những byte địa chỉ thấp trong khi lập trình Flash và trong khi kiểm tra Flash
Port 2 : là một port I/O 8-bit hai chiều có pullup nội Đầu ra port 2 có
thể lái 4 đầu vào TTL Khi viết các mức 1 ra các chân port thì chúng được kéo lên do có điện trở nội và có thể dùng làm đầu vào Khi vai trò là cổng nhập, những chân của port 2 bị kéo xuống thấp sẽ đổ dòng vì có nội trở kéo lên
Port 2 phát byte địa chỉ cao trong khi nhận lệnh từ bộ nhớ chương trình ngoài và trong lúc truy xuất đến bộ nhớ dữ liệu ngoài mà có sử dụng địa chỉ 16 bit (MOVX A, @DPTR) Trong ứng dụng này nó dùng điện trở nội kéo lên mạnh khi xuất 1 Khi truy xuất bộ nhớ dữ liệu ngoài dùng địa chỉ
8 bit, port 2 sẽ phát nội dung của thanh ghi P2
Port 2 cũng nhận byte địa chỉ cao trong lúc lập trình Flash và trong lúc kiểm tra Flash
Port 3 : là một port I/O 8-bit hai chiều có pullup nội Đầu ra port 3 có
thể lái 4 đầu vào TTL Khi viết các mức 1 ra các chân port thì chúng được kéo lên do có điện trở nội và có thể dùng làm đầu vào Khi vai trò là cổng nhập, những chân của port 3 bị kéo xuống thấp sẽ đổ dòng vì có nội trở kéo lên
Trang 32Port 3 cũng có những chức năng của họ MSC-51 được liệt kê ở bảng sau:
BIT TÊN ĐỊA CHỈ BIT CHỨC NĂNG THAY THẾ
P3.0 RXD B0H Nhận dừ liệu cho port nối tiếp
P3.1 TXD B1H Truyền dừ liệu cho port nối tiếp
P3.2 INT0 B2H Ngắt ngoài 0
P3.3 INT1 B3H Ngắt ngoài 1
P3.4 T0 B4H Ngõ vào từ bên ngoài cho timer/counter 0 P3.5 T1 B5H Ngõ vào từ bên ngoài cho timer/counter 1 P3.6 WR B6H Xung ghi bộ nhớ dữ liệu ngoài
P3.7 RD B7H Xung đọc bộ nhớ dữ liệu ngoài
Port 3 cũng nhận vài tín hiệu điều khiển trong lúc lập trình Flash và trong lúc kiểm tra Flash
RST : là ngõ vào Reset Khi ngõ này được đưa lên cao (trong ít nhất hai
chu kì máy), các thanh ghi bên trong AT89C51 được tải những giá trị thích hợp để khởi động hệ thống
ALE/PROG (Address Latch Enable) :ALE là xung xuất cho phép chốt byte địa chỉ thấp khi truy cập bộ nhớ ngoài Chân này còn là ngõ vào của xung lập trình (PROG) khi lập trình Flash
Trong hoạt động bình thường, ALE được phát xung với tần số 1/6 tần số dao động on-chip và có thể được dùng như xung thời gian chuẩn bên ngoài Tuy nhiên, cần chú ý là một xung ALE sẽ bị mất khi truy cập bộ nhớ ngoài
Có thể hủy bỏ chức năng của ALE bằng cách set bit 0 của thanh ghi ở vị trí 8EH Một khi bit này được set, ALE chỉ tích cực khi có lệnh MOVX hoặc MOVC Nếu không có các lệnh này thì ALE ở mức cao Việc set bit
0 của thanh ghi ở vị trí 8EH không làm ảnh hưởng đến vi điều khiển khi truy cập bộ nhớ ngoài
PSEN (Program Store Enable) : PSEN là xung strobe báo hiệu việc đọc
bộ nhớ chương trình ngoài, PSEN tích cực hai lần (mức thấp) mỗi chu kì máy, ngoại trừ hai xung PSEN bị mất khi truy xuất dữ liệu ngoài Khi thi hành chương trình trong RAM nội, PSEN sẽ ở mức thụ động (mức cao)
EA/V PP (External Access) : EA là ngõ vào để cho phép truy xuất bộ nhớ
chương trình từ bên ngoài khi được nối với GND Khi EA được treo lên nguồn VCC, chương trình sẽ được thực thi trong ROM nội Chân này cũng nhận điện áp 12v (VPP) trong khi lập trình Flash
XTAL1 : Đầu vào của bộ khuếch đại dao động đảo và cũng là đầu vào
đến mạch tạo xung clock nội
XTAL2 : Đầu ra của bộ khuếch đại dao động đảo
Trang 332) GIỚI THIỆU VỀ SERIAL PORT CỦA AT89C51:
2.1 GIỚI THIỆU :
AT8951 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trên một dãi tần số rộng Chức năng chủ yếu của port nối tiếp là
thực hiện chuyển đổi song song sang nối tiếp đối với dữ liệu xuất, và
chuyển đổi nối tiếp sang song song với dữ liệu nhập Truy xuất phần cứng đến port nối tiếp qua các chân TXD (P3.1) và RXD (P3.0)
Port nối tiếp cho hoạt động song công (full duplex: thu và phát
đồng thời), và đệm lúc thu (receiver buffering), cho phép một ký tự sẽ được thu và được giữ trong khi ký tự thứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu được thu đầy đủ thì dữ liệu sẽ không
bị mất
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất
đến port nối tiếp là: SBUF và SCON Bộ đệm port nối tiếp (SBUF) ở địa chỉ 99H thật sự là hai bộ đệm Viết vào SBUF để nạp dữ liệu sẽ phát, và đọc SBUF để truy xuất dữ liệu thu được Đây là hai thanh ghi riêng biệt:
thanh ghi chỉ ghi để phát và thanh ghi chỉ đọc để thu
Thanh ghi điều khiển port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi có địa chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, và các bit trạng thái báo kết thúc việc phát hoặc thu ký tự Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể được lập trình để tạo ngắt
Tần số làm việc của port nối tiếp, còn gọi là tốc độ baud có thể cố định (lấy từ bộ dao động trên chip) hoặc thay đổi Nếu sử dụng tốc độ baud thay đổi, Timer 1 sẽ cung cấp xung nhịp tốc độ baud và phải được lập trình
Sơ đồ khối port nối tiếp
Trang 342.2 THANH GHI ĐIỀU KHIỂN (SCON) VÀ CÁC CHẾ ĐỘ HOẠT ĐỘNG:
Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào
thanh ghi chế độ port nối tiếp (SCON) ở địa chỉ 98H
SCON.7 SM0 9FH Bit 0 của chế độ port nối tiếp
SCON.6 SM1 9EH Bit 1 của chế độ port nối tiếp
SCON.5 SM2 9DH Bit 2 của chế độ port nối tiếp Cho phép
truyền thông đa xử lý trong các chế độ 2 và 3; RI sẽ không bị tác động nếu bit thứ 9 thu được là 0
SCON.4 REN 9CH Cho phép thu, phải được đặt lên 1 để thu
(nhận) các ký tự
SCON.3 TB8 9BH Bit thứ 9 được phát trong các chế độ 2 và 3;
được đặt và xóa bằng phần mềm
SCON.2 RB8 9AH Bit thứ 9 thu được
SCON.1 TI 99H Cờ ngắt phát Đặt lên 1 khi kết thúc phát ký
tự; được xóa bằng phần mềm
SCON.0 RI 98H Cờ ngắt thu Đặt lên 1 khi kết thúc thu ký tự;
được xóa bằng phần mềm
Bảng tóm tắt thanh ghi SCON
Port nối tiếp có 4 chế độ hoạt động, trong đó ba chế độ cho phép
truyền thông bất đồng bộ, với mỗi ký tự được thu hoặc phát đều bắt đầu
bằng một bit Start và kết thúc bằng 1 bit Stop Ở chế độ thứ tư, port nối tiếp hoạt động như một thanh ghi dich đơn giản
SM0 SM1 Chế độ Mô tả Tốc độ baud
0 0 0 Thanh ghi dịch Cố định (FOSC /12)
0 1 1 UART 8 bit Thay đổi (đặt bằng Timer)
1 0 2 UART 9 bit Cố định (FOSC chia cho 32 hoặc
64)
1 1 3 UART 9 bit Thay đổi (đặt bằng Timer)
Bảng các chế độ của Port nối tiếp
a) Thanh ghi dịch 8 bit (chế độ 0):
Dữ liệu nối tiếp vào và ra qua RXD, còn TXD xuất xung nhịp dịch 8 bit được phát hoặc thu với bit đầu tiên là LSB Tốc độ baud cố định ở 1/12 tần số dao động trên chip
Trang 35Clock Thanh ghi Dữ liệu dịch
TXD (P3.1) RXD (P3.0) 8951
Tốc độ tràn
Timer 1
Chế độ 1
16
SMOD = 0 SMOD = 1
Một ứng dụng của chế độ thanh ghi dịch là mở rộng khả năng xuất của 8951 IC thanh ghi dịch nối tiếp ra song song có thể được nối vào các đường TXD và RXD của 8951 để cung cấp thêm 8 đường ra Có thể nối
xâu chuỗi thêm các thanh ghi dịch để mở rộng thêm
b) UART 8 bit với tốc độ baud thay đổi được (chế độ 1):
Ở chế độ 1, port nối tiếp của 8951 làm việc như một UART 8 bit (8-bit Universal Asynchronous Receiver/Transmitter) với tốc độ baud thay đổi được (bằng tốc độ báo tràn của Timer 1)
Việc thu/phát tiến hành với 10 bit, gồm 1 bit Start (luôn là 0), 8 bit dữ liệu (LSB đầu tiên) và 1 bit Stop (luôn là 1)
Việc thu dữ liệu được khởi động bằng một chuyển trạng thái từ 1 xuống 0 trên RXD Bộ đếm 16 tức thời được xóa để đồng bộ số đếm với luồng bit đến Luồng bit đến được lấy mẫu giữa 16 lần đếm Giả sử phát hiện được bit Start hợp lệ, bit Start được bỏ qua và 8 bit dữ liệu được đưa vào thanh ghi dịch cổng nối tiếp theo xung nhịp Khi đã có được tất cả 8 bit, điều sau đây xảy ra:
Bit thứ 9 (bit Stop) được chốt vào RB8 trong SCON
SBUF được nạp với 8 bit dữ liệu
Cờ ngắt bộ thu (RI) được đặt lên 1 (cờ RI đã xóa về 0 trước khi ký tự được thu về.)
Trang 36 64
Xung nhịp tốc độ baud
Dao động trên
chip
Chế độ 2
32
SMOD = 0 SMOD = 1
32
Xung nhịp tốc độ baud
Tốc độ tràn
Timer 1
Chế độ 3
16
SMOD = 0 SMOD = 1
c) UART 9 bit với tốc độ baud cố định (chế độ 2):
Ở chế độ 2, port nối tiếp của 8951 làm việc như một UART 9 bit có
tốc độ baud cố định (bằng 1/32 hoặc 1/64 tốc độ dao động trên chip) 11 bit sẽ được phát hoặc thu gồm: 1 bit Start, 8 bit dữ liệu, bit dữ liệu thứ 9 có thể lập trình được và 1 bit Stop Khi phát, bit thứ 9 là bit TB8 trong SCON (có
thể là bit parity) Khi thu, bit thứ 9 thu được sẽ ở trong RB8
d) UART 9 bit với tốc độ baud thay đổi được (chế độ 3) :
Chế độ này giống như chế độ 2, ngoại trừ tốc độ baud có thể lập trình được theo tốc độ tràn của Timer
Nói thêm về SMOD:
Tốc độ baud bị ảnh hưởng bởi một bit trong thanh ghi điều khiển
nguồn cung cấp (PCON, hay 87H) Bit 7 của PCON là bit SMOD Đặt bit
SMOD lên 1 làm gấp đôi tốc độ baud trong các chế độ 1, 2 và 3
Vì PCON không được định địa chỉ bit nên để đặt bit SMOD lên 1 có
thể thực hiện gián tiếp qua một thanh ghi định địa chỉ bit
1 tốc độ baud bit
Stop D0 D1 D2 D3 D4 D5 D6 D7
TXD
TI (SCON.1)
Ngắt phát, chuẩn
bị cho dữ liệu)
Trang 37Chẳng hạn:
MOV A, 87H ; Lấy giá trị hiện thời của PCON
SETB ACC.7 ; Đặt bit 7 (SMOD) lên 1
MOV 87H, A ; Ghi giá trị ngược về PCON
Sử dụng Timer 1 làm xung nhịp tốc độ baud:
Cách thông dụng để tạo tốc độ baud là khởi động Timer 1 ở chế độ 8 bit tự động nạp lại (chế độ 2) và đặt giá trị nạp lại vào TH1 để tốc độ tràn đúng với tốc độ baud Cũng có thể đạt được các tốc độ baud thấp bằng cách sử dụng Timer chế độ 1, tuy nhiên các thanh ghi TH1 và TL1 phải được khởi động lại sau mỗi lần tràn (Việc này được thực hiện trong chương trình phục vụ ngắt) Một chọn lựa khác là cấp xung nhịp cho Timer 1 từ ngoài qua T1 (P3.5)
Công thức tổng quát để xác định tốc độ baud trong các chế độ 1 và 3 (SMOD = 0):
Tốc độ baud = Tốc độ tràn của Timer 1 32
Ví dụ, muốn làm việc với tốc độ baud là 1200 baud, thì tốc độ tràn của
Timer 1 phải là:
1200 32 = 38.4 KHz
Nếu dùng thạch anh 12 MHz, Timer 1 được cấp xung nhịp 1 MHz hay 1000 KHz Vì tốc độ tràn của Timer 1 là 38.4 KHz và Timer 1 được cấp xung nhịp 1000 KHz nên cần tràn sau 1000 38.4 = 26.04 xung nhịp (làm tròn là 26) Timer đếm lên và tràn xảy ra khi có sự thay đổi từ FFH xuống 00H ở số đếm nên giá trị cần nạp vào TH1 là –26 (với chế độ 8 bit tự động nạp lại)
baud_const = 256 - (crystal / (12 * 32 * baud))
Do làm tròn nên có sai số nhỏ trong tốc độ baud Tổng quát thì cho phép dung sai 5% trong truyền thông bất đồng bộ (Start/Stop) Có thể có được tốc độ baud chính xác nếu dùng thạch anh 11.059 MHz
Bảng tóm tắt một số chuẩn tốc độ baud thông dụng
Tốc độ
Baud (bps)
Tần số MHZ (PCON.7SMOD
)
Giá trị nạp vào TH1 Baud thực Tốc độ
(bps)
Sai số (%)
Trang 393) Các thanh ghi chức năng
(SFR-Special Funtion Reisters)
AT89C52 có 26 thanh ghi chức năng được
thiết kế như là một thành phần của RAM
on-chip Do đó mỗi thanh ghi có một địa
chỉ của nó, nằm trong vùng từ 80H đến FFH Tuy nhiên, vùng này cũng là vùng bộ nhớ nên việc truy cập các thanh ghi này thông qua các lệnh dùng định vị trực tiếp khác với việc truy cập vùng nhớ dùng định vị gián tiếp
Bảng vị trí các thanh ghi chức năng :
Chân Chức năng thay thế
P1.0 T2 (đầu vào đếm cho Timer/Counter 2) P1.1 T2EX (xung kích capture/reload cho
Timer/Counter 2 và điều khiển trực tiếp
Trang 40Chú ý là không phải tất cả các địa chỉ đều có các thanh ghi, những địa chỉ không có thanh ghi này có thể không có trên chip Đọc những địa chỉ này sẽ có những giá trị ngẫu nhiên và ghi những giá triï này có những tác động không xác định trước Phần mềm của người dùng không nên ghi những giá trị 1 đến các vị trí này, bởi
vì chúng có thể được dùng trong tương lai Trong trường hợp đó, giá trị của các bit luôn là 0
Các thanh ghi ngắt tập các bit riêng lẻ cho phép ngắt chứa trong thanh ghi IE Thiết
lập hai mức ưu tiên cho 6 nguồn ngắt bằng cách set các bit thanh ghi IP
4)Bộ nhớ dữ liệu
AT89C52 có 256 byte bộ nhớ RAM on-chip Trong đó, 128 byte trên có cùng địa chỉ với vùng thanh ghi chức năng nhưng có cấu tạo vật lý riêng biệt
Khi một lệnh truy cập một vị trí nội có địa chỉ trên 7FH, chế độ địa chỉ nó sử dụng sẽ báo cho CPU biết vùng địa chỉ nào nó cần truy cập : RAM hay SFR Các lệnh dùng địa chỉ trực tiếp sẽ truy cập vùng SFR Ví dụ như lệnh sau đây sẽ truy cập SFR ở địa chỉ 0A0H (port 2)
Lệnh dùng địa chỉ gián tiếp sẽ truy cập 128
byte trên của RAM Ví dụ như cũng truy cập địa
chỉ 0A0H nhưng gián tiếp thông qua R0
Chú ý rằng các tác vụ của stack vốn đã sử
dụng địa chỉ gián tiếp nên vùng 128 byte trên
của RAM rất tiện dụng để làm vùng stack
5) Đặc tính bộ dao động
XTAL1 là đầu vào và đầu ra tương ứng của
bộ khuếch đại đảo được dùng làm bộ dao động
nội on-chip Có thể dùng thạch anh hay bộ cộng
hưởng ceramic đều được
Để lái vi điều khiển từ nguồn xung clock
bên ngoài, XTAL2 phải được để trống trong khi
XTAL1 nối đến nguồn lái Không có yêu cầu gì
về duty cycle nhưng phải chú ý đến thời gian tối đa và tối thiểu của mức điện áp cao cũng như mức điện áp thấp