Hiện nay với sự phát triển mạnh mẽ của khoa học kỹ thuật, việc áp dụng những thành tựu của khoa học kỹ thuật vào cuộc sống là vấn đề hết sức cần thiết và quan trọng. Trong các thành tựu ấy, có thể thấy rằng phần lớn là có Điện tử Viễn thông. Đặc biệt là công nghệ sản xuất vi mạch vi xử lí – vi điện tử… đã đáp ứng được những đòi hỏi không ngừng từ các lĩnh vực công – nông – lâm – ngư nghiệp cho đến các nhu cầu cần thiết trong hoạt động đời sống hàng ngày. Một trong những ứng dụng rất quan trọng của những công nghệ ấy là kỹ thuật điều khiển từ xa. Nó đã góp phần rất lớn trong việc điều khiển các thiết bị mà không cần phải tiếp xúc trực tiếp. Từ đó, người sử dụng có thể linh hoạt hơn trong các thao tác cũng như khoảng cách điều khiển theo ý muốn của mình.
Trang 1CHƯƠNG I: DẪN NHẬP1.1 ĐẶT VẤN ĐỀ.
- Hiện nay với sự phát triển mạnh mẽ của khoa học kỹ thuật, việc áp dụngnhững thành tựu của khoa học kỹ thuật vào cuộc sống là vấn đề hết sức cần thiết
và quan trọng Trong các thành tựu ấy, có thể thấy rằng phần lớn là có Điện tử Viễn thông Đặc biệt là công nghệ sản xuất vi mạch vi xử lí – vi điện tử… đã đápứng được những đòi hỏi không ngừng từ các lĩnh vực công – nông – lâm – ngưnghiệp cho đến các nhu cầu cần thiết trong hoạt động đời sống hàng ngày Mộttrong những ứng dụng rất quan trọng của những công nghệ ấy là kỹ thuật điềukhiển từ xa Nó đã góp phần rất lớn trong việc điều khiển các thiết bị mà khôngcần phải tiếp xúc trực tiếp Từ đó, người sử dụng có thể linh hoạt hơn trong cácthao tác cũng như khoảng cách điều khiển theo ý muốn của mình
- Vài năm gần đây, một nền công nghệ mới ra đời được gọi là ngôi nhà tự động.
Công nghệ này đã tạo ra một số thiết bị mới để phục vụ cho người tiêu dùng Ngôinhà được thiết kế với các thiết bị và các dịch vụ cho người sử dụng Một vài công
ty nhỏ đã giới thiệu một số hệ thống nhà tự động, các công ty lớn đang nghiên cứunhững công nghệ nổi bật để khai thác tiềm năng to lớn này Một hệ thống mạngtrong nhà sẽ liên kết các thiết bị, các cảm biến, các bộ điều khiển, các bảng điềukhiển bên trong ngôi nhà Các thiết bị được liên kết với nhau trong một hệ thốngbao gồm: những thiết bị giải trí, các dụng cụ cầm tay, đến những vật dụng trongnhà bếp, hệ thống điều hoà nhiệt độ, hệ thống chiếu sáng trong nhà
Hầu hết các thiết bị trong nhà ngày nay hoạt độc lập với nhau, mỗi thiết bị cócách sử dụng khác nhau Những thiết bị trong ngôi nhà tự động có thể trao đổi dữliệu và được tập hợp thành những hệ thống nhỏ như hệ thống an ninh, hệ thốngchiếu sáng trong ngân hàng
Hệ thống nhà tự động ra đời gần đây nhất có các thiết bị có thể trao đổi thôngtin bằng cách truyền dữ liệu qua đường dây điện trong nhà Hệ thống này khôngcần lấp đặt thêm bất cứ đường dây điều khiển nào bên ngoài Các thiết bị có thểđược kết nối thành một hệ thống mạng đơn giản bằng cách cắm chúng lên các ổcắm điện trên tường Điển hình một ngôi nhà tự động có các thiết bị như: các cảmbiến, hệ thống chiếu sáng, máy giặt, điện thoại, hệ thống báo động,… tất cả đượckết nối thông qua đường dây điện bằng cách sử dụng Power Line Modem
Nếu một ngôi nhà tự động phát hiện ra lửa thì nó sẽ gửi một tin cảnh báo lêntrên đường dây điện Hệ thống điều khiển sẽ ra lệnh khóa đường ống dẫn khí, hệthống báo động sẽ báo động mọi người trong nhà và nếu có một máy điện thoại thì
nó sẽ gọi điện báo cho dịch vụ chữa cháy Với đường dây điện thoại thì hệ thốngcũng cho phép chủ nhà có thể gửi dữ liệu điều khiển các thiết bị từ bên ngoài ngôi
Trang 2nhà Ví dụ, chúng ta có thể gọi điện thoại về nhà và yêu cầu hệ thống mở máy điềuhoà để làm mát một căn phòng vào một thời gian đặt trước.
Để ngôi nhà chúng ta ngày càng tiện nghi và trở nên tự động nhằm phục vụnhu cầu ngày càng cao của con người với chi phí xây dựng và lấp đặt hệ thống vừaphải, hệ thống truyền dữ liệu để điều khiển đơn giản thì phương án giải quyết tốtnhất hiện nay là nên sử dụng mạng điện thoại có sẵn trong nhà Nó có thể được lấpđặt cho những ngôi nhà đang xây dựng và cả những ngôi nhà có sẵn Tất cả việctruyền và nhận dữ liệu để liên lạc, trao đổi thông tin giữa các thiết bị, các phòng,các khu vực khác nhau sẽ được thực hiện một cách đơn giản nhờ vào bộ truyềnnhận dữ liệu thông qua đường dây điện Power Line Modem (PLM)
- Với thực tế hiện nay và xuất phát từ những nhu cầu trong cuộc sống đi cùng với
cơ sở vật chất hiện có, nhóm chúng em thực hiện đề tài: “THIẾT KẾ VÀ THICÔNG HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ TỪ XA QUAMÁY TÍNH” Qua máy tính có thể quan sát được trạng thái của các thiết bị, điềukhiển thiết bị theo ý muốn một cách chính xác
1.2 TẦM QUAN TRỌNG CỦA ĐỀ TÀI.
- Hình thành từ ý tưởng nhu cầu thực tế của xã hội, để tạo ra một sản phẩm cógiá trị ứng dụng cao thì đây chính là một điều kiện tốt nhất để nhóm chúng emthực hiện đề tài
- Để điều khiển thiết bị con người không cần phải tốn nhiều thời gian nữa, màchỉ cần click chuột và quan sát màn hình máy tính Giả sứ như muốn kiểm tra lạithiết bị tầng trên cùng của một tòa nhà cao tầng ta chỉ cần quan sát trên giao diệnmáy tính là có thể biết được trạng thái cũng như điều khiển được thiết bị đó
1.3 MỤC ĐÍCH CỦA VIỆC THỰC HIỆN ĐỀ TÀI.
- Thiết kế và thi công hệ thống tương đối hoàn chỉnh, có khả năng điều khiểnđược các thiết bị điện như: đèn bàn, đèn trần, đèn ngủ, quạt trần…
- Thực hiện đề tài này giúp cho chúng em có điều kiện và cơ hội làm quen với
kỹ thuật điều khiển kết hợp với máy tính Tìm hiểu sâu hơn nữa về kỹ thuật vi điềukhiển
- Trong quá trình thực hiện đề tài, kiến thức nhóm chúng em còn rất non nớt vàhạn chế Do đó thực hiện đề tài nhằm tích lũy thêm kiến thức và kinh nghiệm chobản thân
1.4 GIỚI HẠN CỦA ĐỀ TÀI
Trang 3Đề tài mà nhóm chúng em thực hiện chỉ tập trung giải quyết những vấn đề
sau:
- Thiết kế và thi công mạch giao tiếp với máy tính và mạch chuyển từ RS 232sang RS 485
- Thiết kế giao diện điều khiển trên máy tính
- Mạch điện tử điều khiển 8 thiết bị
- Liên tục giám sát và hiện thị trạng thái và thông số của thiết bị trên giao diệnmáy tính
- Chỉ thực hiện điều khiển thiết bị từ xa bằng máy tính, không dùng điện thoại,internet…
Trang 4CHƯƠNG II: TRUYỀN DỮ LIỆU VÀ GIAO TIẾP MÁY
TÍNH2.1 TỔNG QUÁT HỆ THỐNG TRUYỀN DỮ LIỆU.
Không giống với việc truyền thông tin bằng cách phát và thu tín hiệu tương tự
như âm thanh hình ảnh, việc truyền dữ liệu được thực hiện bằng cách phát tuần tự(liên tiếp) các mã nhị phân lên đường truyền Các mã này được tạo ra, lưu trữ và
xử lí bởi các máy tính và các ngoại vi
Đường truyền dùng để truyền dữ liệu là các đường truyền số (digital) nghĩa làtín hiệu chỉ có thể ở một trong hai trạng thái khác biệt được biểu thị bằng mứclogic 0 hoặc 1 Trong khi đó tín hiệu tương tự có thể chiếm một trạng thái bất kìtrên một dải liên tục
2.1.1 Cấu trúc một hệ thống thông tin.
Hình 2.1: Hệ thống truyền tin
Sơ lược các khối trong hệ thống:
Nguồn tín hiệu:
Là tín hiệu cần truyền đi, có thể là tín hiệu không điện hoặc tín hiệu điện
Do vậy, cần phải có một bộ chuyển đổi các tín hiệu điện thành tín hiệu không điện
trước khi đưa lên đường truyền.
Trang 5Thông thường dùng các cảm biến để dò lấy tín hiệu này và thực hiện quátrình chuyển đổi thành tín hiệu điện.
Khối truyền tin:
Nhận tín hiệu điện từ nguồn tín hiệu đưa đến sau đó thực hiện sự biến đổicho phù hợp với đường truyền trước khi phát lên đó
Khối này thường gồm: mạch điều chế tín hiệu, một bộ dồn kênh, bộ pháttín hiệu
2.1.2 Phân loại các hệ thống thông tin.
2.1.2.1 Phân loại theo đường truyền.
Đường truyền hữu tuyến
Đường truyền vô tuyến
2.1.2.2 Phân loại dựa theo tín hiệu trên đường truyền
Tín hiệu tương tự
Tín hiệu số
2.1.2.3 Phân loại số bit trên đường dây.
Mỗi bit chiếm lấy một đường truyền (song song): Dữ liệu gồm nhiều bit sẽxuất đồng thời trên đường truyền
Nhiều bit trên một đường truyền (nối tiếp): Các bit sẽ nối tiếp nhau xuấthiện trên một đường truyền duy nhất
2.1.2.4 Dựa vào xung nhịp đồng hồ Ck của bộ phát và bộ thu.
Trang 6 Truyền đồng bộ: khi xung nhịp nơi phát và nơi thu như nhau và cùng gócpha Ưu điểm của cách truyền này là tốc độ truyền rất cao nhưng độ an toàn
về thông tin khá thấp (sai vài bit) Việc chi phí cho thiết kế đường truyềnkhá cao
Truyền bất đồng bộ: khi xung nhịp nơi phát và thu không cần giống nhau.
Theo phương pháp này, dữ liệu được truyền đi với tốc độ chậm hơn nhưng
độ an toàn cao, đặc biệt chi phí cho việc thiết kế đường truyền thấp, thíchhợp cho truyền xa
2.1.2.5 Chiều tín hiệu trên đường truyền.
Loại đơn công: tín hiệu chỉ truyền theo một chiều duy nhất mà không cóchiều ngược lại
Loại song công: tín hiệu có thể truyền theo cả hai chiều một cách đồng thời
Loại bán song công: tín hiệu có thể truyền theo hai chiều nhưng khôngcùng lúc, tức là phải thay đổi luân phiên
Giả sử thực hiện việc truyền song song 8 bit thì ít nhất có 9 đườngdây (một đường mass giữ phần phát và phần thu)
Để nơi phát và thu có thể truyền và thu được chính xác dữ liệu thìnhất thiết phải cần đến các tín hiệu bắt tay: Strobe, Ack và Busy\
Trang 7D0 – D7: là các đường dữ liệu (data bus).
Strobe, Ack va Busy\: là các đường tín hiệu bắt tay nhằm phối hợpgiữa phần phát và phần thu
Strobe: do máy phát gửi ra nhằm báo cho máy thu biết rằng đã có dữliệu gửi ra trên đường truyền D0 – D7
ACK: do phần thu đưa ra nhằm báo cho phần phát biết rằng phầnthu đã thu xong một kí tự
Busy: do phần thu đưa ra nhằm báo cho phần phát biết rằng phầnthu đang bận với một tác vụ nào đó nên chưa thể thu được kí tự tiếp theo
Ví dụ một quá trình truyền dữ liệu giữ máy tính và máy in.
CPU chờ cho tới khi đường tín hiệu Busy\ lên mức cao tức là máy in đã sẵnsàng nhận dữ liệu
CPU xuất mã kí tự kế tiếp ra port song song
Sau đó, CPU đưa xung Strobe lên 1 Tín hiệu này báo cho máy in biết rằng
đã có dữ liệu mới trên đường truyền
Máy in tiến hành nhận dữ liệu và khi đã hoàn tất công việc liên quan đến kí
tự cuối cùng nó sẽ trả Busy\ về mức cao Máy đưa xung ACK lên cao đểbáo cho CPU biết nó đang sẵn sàng nhận kí tự tiếp theo
2.1.3.2 Hoạt động của hệ thống.
Phần phát:
Đọc giá trị của đường Busy\ cho đến khi Busy\ =1 tức là phần thu khôngbận
Sau đó phần phát gửi data ra đường dữ liệu
Cho chân Strobe =1 để báo cho phần thu biết kí tự đã sẵn sàng
Đọc chân ACK cho đến khi chân này lên mức 1 tức là phần thu đã thu xong
kí tự
Chân Strobe = 0 để tránh trường hợp phần thu thu thêm một lần nữa
Chuẩn bị dữ liệu kế tiếp theo để xuất đi nếu như chưa truyền hết
Cho chân Busy\ = 0 để phần phát tạm thời ngưng lại và cho chân ACK = 0
để khoan thay đổi data
Xử lí data (cất vào vùng nhớ đệm)
Cho chân Busy\ = 1
Trang 82.1.4 Giao tiếp nối tiếp bất đ ồng bộ.
Cấu trúc:
Giao tiếp nối tiếp bất đồng bộ là giao tiếp mà xung đồng hồ của bộ phát
và bộ thu được tạo ra một cách riêng rẽ và không cần phải bằng nhau
Các bit lần lượt chiếm lấy đường, việc giao tiếp cần phải thêm cácbit khung (thông tin khung) bao gồm:
Bit khởi động (start)
Bit dừng (stop)
Bit chẵn lẻ (parity)
Thành phần chính của hệ thống là các thanh ghi dịch
Tại phần phát, thanh ghi dịch là thanh ghi vào song song ra nối tiếp
Tại phần thu, thanh ghi dịch là thanh ghi vào nối tiếp ra song song..
2.1.4.1 Phát dữ liệu nối tiếp.
Khi cần phát dữ liệu, CPU phần phát sẽ gửi data tới thanh ghi phát bằng cáchđưa dữ liệu đến các ngõ vào song song của thanh ghi dịch sau đó tác động mức 1lên chân LD để cho thanh ghi nạp lấy giá trị này
Trang 9Khi LD không còn tác động nữa thì thanh ghi dịch sẽ luư trữ lại giá trị này.Sau đó, dưới tác động của xung đồng hồ nơi phát, các bit của dữ liệu cần phát sẽlần lượt dịch đến ngõ ra nối tiếp để đưa lên đường truyền.
2.1.4.2 Thu dữ liệu nối tiếp.
Khi phần thu nhận dạng được bit khởi động, CPU phần thu sẽ phát tín
hiệu điều khiển xung Ck thu
Lúc này dưới tác động của xung Ck thu, từng bit dữ liệu trên đườngtruyền sẽ lần lượt được dịch vào thanh ghi phần thu cho đến khi xuất hiện bitdừng thì CPU phần thu sẽ phát tín hiệu để đọc dữ liệu tại các ngõ ra song songcủa thanh ghi dịch
Bit khởi động (start) nhằm báo cho phần thu biết thời điểm nhận một
dữ liệu mới, bit này có trạng thái ngược với trạng thái thường xuyên của đườngtruyền (có trạng thái = 1)
Khi dùng bit parity, trạng thái logic của bit này phụ thuộc vào kí tự dữliệu đặc trưng và việc lập phần cứng là kiểm tra parity chẵn hay lẻ
Bit parity là bit 0 hoặc bit 1 tuỳ theo việc kiểm tra chẵn hay lẻ và dữ liệu
Các bit stop là khoảng cách bảo vệ tối thiểu giữa các khung kí tự
2.2 KỸ THUẬT GHÉP NỐI VÀ GIAO TIẾP MÁY TÍNH.
Máy vi tính là thiết bị trợ giúp đắc lực cho con người đặc biệt với khoa
học kỹ thuật ngày càng phát triển thì máy vi tính trở nên rất cần thiết Chính vìvậy, ngày nay máy vi tính được đưa vào ứng dụng rất nhiều trong cuộc sốngcũng như trong kỹ thuật Nó có thể được dùng để quản lý, tính toán, giao tiếp,
Trang 10hoặc giải các bài toán kỹ thuật…Nhưng ứng dụng mạnh nhất là thhu thập dữ liệu
từ các thiết bị ngoại vi, xử lí và điều khiển các quá trình hoạt động của chúngmột cách tự động theo chương trình
Việc giao tiếp giữa máy tính và các thiết bị ngoại vi có thể giao tiếpbằng 3 cách:
Giao tiếp qua Slot-Card
Giao tiếp qua cổng song song (máy in)
Giao tiếp qua cổng nối tiếp (COM)
2.2.1 Giao tiếp qua Slot-Card.
Bên trong máy tính, ngoài những khe cắm dùng cho card vào-ra, card
màn hình, vẫn còn những rãnh cắm để trống Để giao tiếp với máy tính, ta có thểthiết kế card mở rộng để gắn vào khe cắm mở rộng này Ở các máy tính PC thìthường có các rãnh cắm tuân theo các tiêu chuẩn như: ISA (Industry StandardArchitecture) 8 bit hoặc 16 bit, ngoài ra còn có rãnh cắm theo tiêu chuẩn PCI(Peripheral Component Interconnection) 32 bit hoặc 64 bit, qua các đường tín hiệunày máy tính có thể giao tiếp dể dàng với thiết bị bên ngoài thông qua card mởrộng
Trên rãnh cắm mở rộng, ngoài các đường địa chỉ và đường dữ liệu,còn có một số đường điều khiển như: RESET, IOR, IOW, AEN, CLK,…Do đócard giao tiếpvới máy tính qua Slot Card đơn giản, số bit có thể tăng dể dàng,giảm được nhiều linh kiện, tốc độ truyền dữ liệu nhanh (truyền song song) Tuynhiên, do khe cắm nằm bên trong máy tính nên khi muốn gắn card giao tiếp vàothì phải mở nắp ra, điều này gây bất tiện cho người sử dụng
2.2.2 Giao tiếp qua cổng song song.
Đây là cách giao tiếp được dùng để truyền dữ liệu giữa máy tính và
máy in Khác với cách giao tiếp qua cổng COM, ở cách giao tiếp này dữ liệuđược truyền song song cùng một lúc 8 bit vì thế nó có thể truyền ở tốc độ cao.Đầu nối (Connector) của port này gồm 25 chân bao gồm 8 đường dữ liệu và cácđường bắt tay (handshaking) Tất cả các đường dữ liệu và tín hiệu điều khiển đều
Trang 11ở mức logic có thể hoàn toàn tương thích với mức TTL Hơn nữa người lập trình
có thể điều khiển cho phép hoặc không cho phép các tín hiệu tạo ngắt (Interrupt)
từ ngõ vào nên việc giao tiếp đơn giản và dể dàng hơn Các máy tính ra đời từnăm 1995 trở lại đạy đều có trang bị giao tiếp theo chuẩn IEEE (InstitudeElectronic And Electronic Engineering) Chuẩn này ra đời vào năm 1994 quiđịnh một chuẩn giao tiếp mới giữa máy tính cá nhân với các thiết bị ngoại vi.Chuẩn giao tiếp này tương thích được với chuẩn giao tiếp song song cơ bảnnhưng có tốc độ nhanh hơn 50 – 100 lần so với giao tiếp cũ Chuẩn IEEE 1484qui định 5 chế độ truyền dữ liệu tuỳ theo hướng truyền:
Chỉ truyền ra: chế độ tương thích với chuẩn giao tiếp song song cơ bản haychuẩn “Centronic”
truyền hai chiều:
- Cổng song song cải tiến EPP (Enhanced Parallel Port) được các thiết
bị khác máy in sử dụng (ổ đĩa CD, ổ đĩa cứng, bộ điều khiểnmạng…)
- Cổng song song 2 chiều dùng chế độ tương thích, chế độ Nipple vàchế độ Byte chỉ dùng phần mềm để truyền dữ liệu Chương trìnhđiều khiển cổng song song có trách nhiệm kiểm tra tín hiệu bắt tay(Handshacking, ví dụ như busy), và trao tín hiệu điều khiển thíchhợp cho thiết bị ngoại vi (ví dụ như Strobe), và truyền byte dữ liệu.Quá trình này cần nhiều phần mềm và giới hạn tốc độ truyền dữ liệutrong khoảng 50 đến 100 Kbyte trong 1s Chế độ EPP, ECP được càiđặt trong mọi vi mạch Supper I/O hiện đại Hai chế độ này dùngphần cứng trợ giúp một phần truyền dữ liệu ra cổng EPP chương
Trang 12trình chỉ cần gọi lệnh OUT, phần cứng đảm nhận nhiệm vụ điềukhiển các tín hiệu bắt tay
Việc giao tiếp giữa vi điều khiển với máy tính được thực hiện qua châncắm 25 chân ở phía sau máy tính Qua cổng này dự liệu được truyền đi song song,nên đôi khi còn được gọi là cổng ghép nối song song
Các chân và đường dẫn được mô tả như sau:
Lối raLối raLối raLối raLối raLối raLối raLối vào (Input)Lối vào
Lối vào Lối raLối vàoLối raLối ra
: Byte được inĐường dữ liệu D0Đường dữ liệu D1Đường dữ liệu D2Đường dữ liệu D3Đường dữ liệu D4Đường dữ liệu D5Đường dữ liệu D6Đường dữ liệu D7Acknowledge (xác nhận)
1 : Máy in bậnHết giấySelect (Lựa chọn)Auto Feed (Tự nạp)Error (Lỗi)
0 : Đặt lại máy in
1
1425
13
Trang 132.2.3 Giao tiếp qua cổng COM (giao tiếp nối tiếp).
Khác với cổng máy in,cổng COM là cổng truyền dữ liệu nối tiếp Nó thường
được dùng để giao tiếp với các thiết bị ngoại vi có tốc độ xử lý chậm, cổng nàygiao tiếp theo chuẩn RS 232
Dữ liệu được truyền dưới dạng nối tiếp từng bit một Tốc độ truyền bit do ngườilập trình quyết định (thơừng là 1200bps, 2400bps, 4800bps, 9600bps…) chiều dàibit dữ liệu có thể là 5, 6, 7, 8 bit kèm theo 1, 3/2, 2 bit stop, và 1 bit start tạo thànhmột khung gọi là Frame Cổng này gồm các đường phát, đường thu, các đường bắttay và đường mass chung Vì giao tiếp với chuẩn RS 232 nên có khoảng cáchtruyền xa hơn so với cổng máy in nhưng có tốc độ truyền chậm
2.3 LỰA CHỌN PHƯƠNG ÁN GIAO TIẾP.
Các máy tính PC được sản xuất gần đây thường có một cổng LPT, hai cổng nối
tiếp theo chuẩn RS 232, cổng thứ nhất với tên gọi COM1 thường được dùng chochuột, còn cổng thứ hai ( COM2) thường dùng cho các mục đích ghép nối khácnhư modem, máy in hoặc thiết bị đo lường Khi cần nhiều hơn hai cổng ta có thểlắp đặt các card mở rộng trên đó có thêm 1 – 2 cổng RS 232 Một số hãng phầncứng giới thiệu các vào/ra cho phép tăng thêm hai cổng RS 232 hoặc nhiều hơn Việc sử dụng giao diện song song thì có ưu điểm là truyền dữ liệu nhanh hơnkhi sử dụng giao diện nối tiếp nhưng khi cần truyền dữ liệu ở khoảng cách xa thìvấn đề chống nhiễu và kinh tế cần được quan tâm nhiều Do đó khi cần truyền dữliệu ở cự ly xa với độ chính xác và ổn định cao thì sử dụng giao diện nối tiếp manglại nhiều ưu điểm, ngay cả với những mạch ghép nối đơn giản
Khả năng chống nhiễu của các cổng nối tiếp cao hơn so với cổng máy in
Thiết bị ngoại vi có thể lắp ngay cả khi máy tính đang được lắp điện
Mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua cổng nốitiếp
Trang 14Thông thường thì việc sử dụng cổng nối tiếp đòi hỏi chi phí nhiều hơn vì cần có
sự biến đổi dữ liệu được truyền theo kiểu nối tiếp thành dữ liệu song song Vớinhững bài toán ghép nối không phức tạp, trong đó chỉ sử dụng một vài đường dẫnvào/ra thì ta có thể sử dụng trực tiếp các đường dẫn phụ trợ có liên quan của giaodiện Tổng cộng có đến hai đường dẫn lối ra và bốn đường dẫn vào, có thể đượctrao đổi trực tiếp bằng các lệnh đơn giản
Bảng dưới đây chỉ ra tất cả các đường dẫn được nối với các chân trên đầu nối
liệu
Send
Xoá để gửi, bộ nhận đặtđường này lên mức hoạtđộng để thông báo cho bộtruyền là sẳn sàng nhận dữ
liệu
Ready động giống với CTS nhưngDữ liệu sẵn sàng, tính hoạt
Trang 15được kích hoạt bởi bộtruyền khi nó sẵn sàng nhận
22 9 RI, Ring Indicate Báo chuông, cho biết là bộnhận đang nhận tín hiệu
rung chuôngViệc trao đổi dữ liệu qua cổng nối tiếp trong các trường hợp thông thường đều quađường dẫn truyền nối tiếp TxD và đường dẫn nối tiếp RxD Tất cả các đường dẫncòn lại có chức năng phụ trợ khi thiết lập và điều khiển cuộc truyền dữ liệu Cácđường dẫn này gọi là các đường dẫn bắt tay bởi vì chúng được sử dụng theophương pháp “ký nhận” giữa các thiết bị Ưu điểm đặc biệt của đường dẫn bắt tay
là trạng thái của chúng có thể đặt hoặc điều khiển trực tiếp
Trạng thái LOW tương ứng với mức điện áp +12V còn trạng thái HIGH tươngứng với mức điện áp -12V Tất cả các lối ra đều có đặc tính chống chập mạch và
có thể cung cấp dòng điện từ 10mA đến 20mA Với các lối ra này, các LED có thểđược đấu vào hoặc được các tầng đệm điều khiển trực tiếp Giữa hai điện ápchuyển mạch có một khoảng thời gian trể, nghĩa là trạng thái được đọc sẽ thay đổikhi điện áp lối vào nằm ở bên ngoài vùng này
Thông thường thì giao diện nối tiếp được điều khiển bằng mức tín hiệu hai cựcvới độ lớn bằng +12V và -12V Bởi vì các mạch lối vào thông thường trong máytính PC nhận dạng một mức điện áp dưới 1V như là mức LOW, nên cổng nối tiếpcũng được phép làm việc với mức TTL (0V/5V) Một số máy tính PC, phần lớn làmáy tính xách tay làm việc với ngưỡng chuyển mạch từ -3V đến +3V và vì thếchấp nhận các tín hiệu lối vào hai cực
Điều khiển số qua cổng RS 232
Khác với kiểu truyền dữ liệu theo kiểu đồng bộ với một đường dẫn dữ liệu vàmột đường dẫn giữ nhịp, các cuộc truyền dị bộ có thể tiến hành ngay cả khi truyềntrên khoảng cách lớn Sự trễ về thời gian và tình trạng dốc thoai thoải của sườn
Trang 16xung không làm nhiễu quá trình truyền dữ liệu nối tiếp Qua đường dẫn TxD ta cóthể truyền dữ liệu, chẳng hạn với tốc độ 1200 baud, bằng một dây dẫn đơn giản,không bọc kim trên khoảng cách đến 50m Ở đầu đường dẫn phía bên kia, có thểchuyển đổi dữ liệu bằng một bộ nhận nối tiếp để biến thành dữ liệu song song vàchuyển lên tám đường dẫn song song Nhờ vậy về nguyên tắc ta có thể điều khiểntám tải tiêu thụ điện độc lập nhau Bộ nhận nối tiếp có thể được thiết kế thuần tuýđiện tử với một vi mạch UART (chẳng hạn AY3-1015 hoặc 6402) hoặc bằng một
vi điều khiển nào đấy
Đường dẫn truyền nối tiếp TxD được nối tương ứng với đường dẫn nhận nốitiếp RxD Vì thế, qua một đường dẫn thứ hai theo hướng ngược lại các trạng thái ởtám lối vào số có thể được đọc Việc chuyển đổi các dữ liệu được sắp sếp songsong thành một dòng dữ liệu nối tiếp lại được tiến hành bằng một mạch điện thíchhợp hoặc bằng một vi điều khiển
Ở đây xin giới thiệu một giải pháp sử dụng một bộ vi điều khiển loại 8951 Córất nhiều loại bản mạch phát triển sử dụng bộ vi điều khiển loại 8051/8031 hoặccác thế hệ tiếp của vi mạch này Trong trường hợp này, giải pháp “một chip” cũng
tỏ ra rất hấp dẫn, chẳng hạn với một vi điều khiển chớp (flash controller) 89c51trong vỏ 40 chân hoặc 89C2051 trong vỏ DIL nhỏ hơn 20 chân Chương trình điềukhiển trong bộ vi điều khiển hoàn toàn độc lập với kiểu được sử dụng và vì thếđược viết chung thành một chương trình hợp ngữ dòng họ 8051
2.4 TRUYỀN DỮ LIỆU QUA ĐƯỜNG DÂY ĐIỆN THOẠI ( POWER LINE MODEM ).
Power Line Modem (PLM) là sản phẩm được chế tạo dựa trên công nghệ mới.
PLM được sử dụng để truyền dữ liệu giữa máy tính và thiết bị điện thông quamạng điện trong nhà Sản phẩm có thể truyền dữ liệu giữa các máy tính và giữamáy tính và các thiết bị điện mà không cần lắp đặt thêm bất kì đường cáp truyền
dữ liệu nào Kỹ thuật FDM được sử dụng để có thể truyền dữ liệu với tốc độ cao,
nó còn được dùng trong hệ thống mạng với tốc độ 10Mbps Sản phẩm này chophép người sử dụng có thể truy cập mạng tại nhà mà không cần thêm hệ thốngmạng nào tại nhà Trong một tương lai không xa sản phẩm này sẽ được sử dụngrộng rãi trên khắp các nước như nhà tự động và truy cập mạng
Những đặc điểm chủ yếu của sản phẩm:
Tín hiệu truyền trên đường dây điện
Kết nối trực tiếp với hệ thống điện trong nhà mà không cần lắp đặt thêm bất
Trang 17PLM được ứng dụng rộng rãi trong hệ thống mạng, trong gia đình, trong côngnghiệp, các xí nghiệp, các toà nhà thông minh, quản lý năng lượng, truyền dữ liệu
và hình ảnh, các hệ thống quan sát và điều khiển từ xa,…
Trong hệ thống mạng: nó cung cấp một giao diện kết nối đơn giản mà khôngcần lắp đặt thêm bất kì hệ thống cáp truyền nhận dữ liệu nào từ máy chủ Người sửdụng có thể truy cập hệ thống mạng bất cứ nơi đâu và bất cứ khi nào bằng cách kếtnối máy tính với một PLM bên ngoài và cắm chúng lên ổ cắm trên tường
Hệ thống nhà tự động: rất rẻ trong thiết kế và lắp đặt bằng cách sử dụngđường dây điện để truyền dữ liệu giữa các thiết bị Đó còn là ý tưởng để sử dụngđường dây điện để thực hiện việc truyền dữ liệu trong những điều khiển thôngminh, điều khiển từ xa, trao đổi thông tin, phân tích lỗi Hơn nữa nó còn cho phépngười sử dụng có thể điều khiển các thiết bị trong nhà ở những nơi rất xa bằngcách kết hợp với hệ thống mạng
Trong các toà nhà thông minh: hệ thống điện cũng được dùng chung cho hệthống báo cháy, hệ thống báo động an ninh trong mỗi ga đình mà không cần lắpđặt thêm bất kì đường cáp truyền dữ liệu riêng biệt nào
2.5 TRUYỀN DỮ LIỆU QUA CHUẨN RS – 485.
Theo nhận định của nhóm thực hiện đề 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ếtkiệm năng lượng
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ầucung cấp nguồn đơn +5V để tạo ra mức điện áp vi sai tối thiểu 1.5V ở ngõ ra visai
Khả năng về mạng:
RS-485 là một giao diện đa diể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:
Trang 18RS-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 khoảng cách truyền tăng thì tốc độ baud giảmxưống.
Ví dụ: khi tốc độ là 90Kbps thì khoảng cách là 1200m, 1Mbps thì khoảngcách là 120m, còn với tốc độ 10Mbps thì khoảng cách chỉ còn 15m
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 Bộ thu sẽ đáp ứng phần hiệugiữa các mức điện áp, được minh họa ở hình dưới:
Hình 2.2: Đường truyền cân bằng
Hình 2.3: Tín hiệu trên hai đường truyền cân bằng
Hình 2.4: Đườ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 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
Trang 19thì mức logic ở đầu vào là cao, ngượ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 bộ nhận đầu vào phải nằm trong tầm -7V ¸ +12V Mức áp
vi sai đầu vao tối đa - 6V £ VA – VB £ +6V
Ưu diểm của đường truyền cân bằng:
Đường truyền cân bằng có ưu điểm bởi hai đường tín hiệu mang dònggần bằng nhau nhưng ngược dấu Điều này giúp giảm nhiễu trên đường truyền bởihầu hết các điện áp nhiễu điều tăng hay giảm đề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ễu có thể là các dây khác trong cáp hoặc ở bên ngoài Một
bộ thu 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 đirất nhiều tín hiệu nhiễu
Ngược lại, trong giao tiếp không cân bằng, bộ thu phát mức điện ápgiữ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ôitrườ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ộ thu Trong kết nối ở khoảng cáchlớn, điện thế ở các bộ điều khiển và bộ thu có thể khác nhau nhiều volt
Ở một đường truyền không cân bằng, điện hế đất khác nhau có thể làmcho bộ thu không đọc được đầu vào Còn ở đường truyền cân bằng thì chúngkhông quan tâm điện thế đất vì nó chỉ đọc phần điện thế hiệu giữa hai dây truyềntín hiệu
Mức áp yêu cầu:
Giao tiếp RS-485 điển hình sử dụng nguồi cung cấp đơn +5V nhưngmứ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áchhoàn hảo thì các đầu ra offset bằng một nữa với đường cung cấp Bất cứ sự cânbằ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 -1 ¸ -4V so với đất Nguồn cung cấpcho bộ điều khiển là +5V
Trang 20Hình 2.5: tín hiệu ra của A và B
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 bộđiều khiển Biên độ đỉnh đỉnh của áp ra là 6V gấp 2 lần biên độ đỉnh đỉnh của điện
áp trên mỗi đường dây
Hình 2.6: Điện áp vi sai của A và B
Nế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êch lệch giữa 2 đầu ra Các Driver của RS-485được thiết kế sau cho tối thiểu thời gian lệch
Tại bộ thu, điện áp 2 đầu vào A và B chỉ cần chêch lệch 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ếunhư điện áp vi sai này <0,2V thì mức logic không xác định
Sự khác nhau giữa điện áp bộ điều khiển và bộ thu là giới hạn nhiễucho phép 1,3V Điện áp vi sai có thể yếu đi hoặc bị nhiễu kí sinh khoảng 1,3V 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ộ điều khiển cần cấp nguồn 3V cũng có thể có áp ra
vi sai giữa 2 đầu ra là 1,5V
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
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ầntrong 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
Trang 21Trở kháng ra của bộ phát thấp và trở kháng của cáp thấp cho phépviệ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 trongmạng và kéo dài tuổi thọ của bộ nguồn.
Vệ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àng phần đầu cuối thì trở kháng vào của các bộ thu sẽ ảnhhưở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 tải đến 32 đơn vị tải TIA/EIA – 485 xác địnhmộ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 định 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ào ít nhất là 12KW, mắc giữa mỗi đầu vi sai với Vcc hay GNDtuỳ thuộc vào chiều dòng điện Nếu thêm một bộ thu thì điện trở tương đương là6000W Nếu có 32 đơn vị tải thì R tương đương là 375W
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, cùngchia 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ệcchuyển đổi mạng RS-232 sang RS-485 song công dễ dàng thực hiện bằng phầnmề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
Trang 22Hình 2.7: Kết nối song công nhiều điểm.
Trong một dạng gồm có chủ và tớ, ở đó node chủ dùng để điều khiểnmạ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ủacá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 đượccho 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ậnlợ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 đườngmạng để lấy thông tin từ con chủ gửi tới
có sự xung đột Nhưng 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àohay đầ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 thiế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
Chip SN75176B bao gồm một bộ phát dùng đổi mức logic TTL sangRS-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ânRS-485 và chân cho phép vào, dùng xác định liệu bộ phát hay bộ thu 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ạng 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
Một việc quan trọng trong sử dụ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 truyền dữ liệu thì nó vẫncòn được cho phép cho đến khi nó thực hiện xong việc truyền dữ liệu Sau đó nókhông được cho phép trước khi các điểm khác thực hiện việc phát
Mối quan hệ giữa một byte dữ liệu 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 RS-485
Trang 23 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 chophép bộ phát tích cực mức cao, trong khi đó chân cho phép bộ thu tích cựcmứ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 điểm đểphát hiện khi nào thì một chuyển đổi hoàn thành, bằng cách đọc dữ liệutruyề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ânEnable của bộ phát và bộ thu
Kết luận về phương pháp lựa chọn:
Trên đây nhóm thực hiện đề tài đã trình bày một số lý thuyết về chuẩn truyềngiao tiếp máy tính Nhóm thực hiện đề tài thấy RS-485 khá hiệu quả, chủ yếu sẽnhờ vào khả năng lập trình của người thiết kế
Trong điều kiện cho phép về khả năng lập trình, cũng như thiết kế phần cứng, nhóm thực hiện đề tài chọn chuẩn truyền RS-485 vì chuẩn này khá thông dụng, tương đối dễ thi công và lập trình, hiệu quả lại cao Cách trao đổi dữ liệu nhóm thực hiện đề tài sẽ thực hiện là bán song công Các chi tiết sẽ đượctrình bày trong phần thiết kế
CHƯƠNG III : CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH
3.1: GIỚI THIỆU VI ĐIỀU KHIỂN AT89C52.
IC vi điều khiển 89S52 có các đặc điểm sau :
8kbyte ROM
256 byte RAM
Trang 24 4 port 8bit
Ba bộ định thời 16 bit
Giao tiếp nối tiếp
64KB không gian bộ nhớ chương trình mở rộng
64 KB không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý bít (thao tác trên các bit đơn)
210 bit được địa chỉ hóa và mỗi vị trí một bít
Bộ nhân/chia 4s
3.1.1 Cấu trúc bên trong 89C52.
a Cấu tạo chân.
Tuỳ theo khả năng của từng người (về kinh tế, kỹ thuật…) mà các nhà sản xuấtcác sản phẩm ứng dụng có thể chọn 1 trong 3 kiểu chân do ATMEL đưa ra
Hình 3.1: Sơ đồ chân
Trang 25Hình 3.2: Sơ đồ khốiPhần chính của vi điều khiển 89S52 là bộ xử lý trung tâm (CPU: centralprocessing unit ) bao gồm :
- Các thanh ghi chức năng đặc biệt (SFR)
- Đơn vị logic học (ALU : Arithmetic Logical Unit )
Các cổng (port0, port1, port2, port3 ) Sử dụng vào mục đích điều khiển
Trang 26Ở cổng 3 còn có thêm các đường dẫn điều khiển dùng để trao đổi với bộ nhớbên ngoài, hoặc để đầu nối giao diện nối tiếp,cũng như các đường ngắt dẫn bênngoài.
Giao diện nối tiếp cũng chứa một bộ truyền và bộ nhận không đồng bộ làmviệc độc lập với nhau.Tốc độ truyền qua cổng nối tiếp có thể đặt trong dải rộng vàđược ấn định bằng một bộ định thời
Trong vi điều khiển 89S52 có hai thành phần quan trọng khác là bộ nhớ vàthanh ghi :
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và mãlệnh
Các thanh ghi sữ dụng để lưu trữ thông tin trong quá trình xữ lý Khi CPUlàm việc nó thay đổi nội dung của các thanh ghi
c Mô tả chức năng các chân.
- port0: là port có hai chức năng ở trên chân từ chân 32 đến 39 trong các thiết
kế cỡ nhỏ ( không dùng bộ nhớ mở rộng) có hai chức năng như các đường I/O.Đối với các thiết kế cỡ lớn với bộ nhớ mở rộng nó được kết hợp kênh giữa cácbus
- port1: port1 là một port I/O trên các chân từ 1-8 Các chân có thể dùng cho
thiết bị ngoại vi nếu cần Port1 không có chức năng khác vì vậy chúng chỉ đượcdùng trong giao tiếp các thiết bị ngoài
- port2: port2 là một port công dụng kép trên các chân 21 đến 28 được dùng
như các đường xuất nhập hoặc là byte cao của bus địa chỉ 16 bit đối với các thiết
kế dùng bộ nhớ mở rộng hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệungoài
- Port3: port3 là một port công dụng kép trên các chân 10 – 17 Các chân của
port này có nhiều chức năng riêng, các công dụng chuyển đổi có liên hệ với cácđặc tính đặc biệt của 8051/89S52 như ở bảng sau:
Bảng 3.1: Chức năng đặc biệt port 3
- PSEN (Program Store Enable ) : 89S52 có 4 tín hiệu điều khiển
PSEN là tín hiệu trên chân 29 Nó là tín hiệu điều khiển cho phép bộ nhớchương trình mở rộng và thường được nối đến chân OE (Output Enable) của mộtEPROM để cho phép đọc các byte mã lệnh
Trang 27PSEN sẽ ở mức thấp trong thời gian lấy lệnh Các mã nhị phân của chươngtrình được đọc từ EPROM qua bus và được chôt vào thanh ghi lệnh của 89S52 đểgiải mã lệnh Khi thi hành chương trình trong ROM nội (89S52) PSEN sẽ ở mứcthụ động( mức cao).
- ALE (Address Latch Enable ) :
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc vớicác xữ
lý 8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho việc giải mã các kênhcác bus địa chỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó:vừa là bus dữ liệu vừa là bus thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vàomột thanh ghi bên ngoài trong nữa đầu của chu ký bộ nhớ Sau đó các đường port
0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của bộ nhớ
Các xung tín hiệu chân ALE có tốc độ bằng 1/6 lần tần số dao động trên chip
và có thể dùng làm nguồn xung nhịp cho các hệ thống Nếu xung trên chân 8051 là12MHz thì ALE có tần số 2MHz Chỉ ngoại trừ khi thi hành lệnh MOVX, mộtxung ALE sẽ bị mất Chân này cũng được làm ngõ vào cho xung lập trình choEPROM trong 8051
- EA (External Access) :
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặcmức thấp (GND) Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trongkhoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộnhớ mở rộng Khi dùng 8031, EA luôn được nối mức thấp vì không có bộ nhớchương trình trên chip Nếu EA được nối mức thấp bộ nhớ bên trong chương trình89S52 sẽ bị cấm và chương trình thi hành từ EPROM mở rộng Người ta còndùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 89S52
- SRT (Reset) :
Ngõ vào RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này được đưalên múc cao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 89S52 được tảinhưõng giá trị thích hợp để khởi động hệ thống
- Các ngõ vào bộ dao động trên chip:
Như đã thấy trong các hình trên , 89S52 có một bộ dao động trên chip Nóthường được nối với thạch anh giữa hai chân 18 và 19 Các tụ giữa cũng cần thiếtnhư đã vẽ Tần số thạch anh thông thường là 12MHz
Trang 28Bộ nhớ bên trong bao gồm ROM (89S52) và RAM trên chip, RAM trên chipbao gồm nhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, cácbank thanh ghi và các thanh ghi chức năng đặc biệt
Chi tiết về bộ nhớ RAM trên chip :
Như ta đã thấy trên hình sau, RAM bên 89S52 được phân chia giữa các bankthanh ghi (00H - 1FH), RAM địa chỉ hóa từng bit (20H - 2FH), RAM đa dụng(30H - 7FH) và các thanh ghi chức năng đặc biệt (80H - FFH)
Trang 29BANK 1Default registerBank for RO¸R7
Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùngcách đánh địa chỉ trực tiếp hoặc gián tiếp Ví dụ, để đọc nội dung ở địa chỉ 5FHcủa RAM nội vào thanh ghi tích lũy lệnh sau sẽ được dùng :
MOV A, 5FH
Lệnh này di chuyển một bus dữ liệu dùng cách đánh địa chỉ trực tiếp để xácđịnh "địa chỉ nguồn" (5FH) Ðích nhận dữ liệu được ngầm xác định trong mã lệnh
là thanh ghi tích lũy A
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếpqua RO hay R1 Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên :
MOV R0, #5FH
MOV A, @R0
Lệnh đầu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0 vàlệnh thứ hai dùng địa trực tiếp để di chuyển dữ liệu "được trỏ bởi R0" vào thanhghi tích lũy
b.RAM địa chỉ hóa từng bit :
20H đến 2FH, và phần còn lại trong các thanh ghi chức năng đặc biệt
Ý tưởng truy xuất từng bit riêng rẽ bằng mềm là một đặc tín tiện lợi của vi điềukhiển nói chung Các bit có thể được đặt, xóa, AND,OR với một lệnh đơn Ða sốcác chi xử lí đòi hỏi một chuổi lệnh đọc – sữa - ghi để đạt được hiệu quả tương tự.Hơn nữa, các port I/0 cũng được địa chỉ từng bit làm đợn giản phần mềm xuấtnhập từng bit
Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH Các địa chỉnày được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng Ví
dụ, để đặt bit 67H, ta dùng lệnh sau :
SETB 67H
Chú ý rằng "địa chỉ bit 67H" là bit có trọng số lớn nhất (MSB) ở "địa chỉbyte 2CH" lệnh trên sẽ không tác động đến các bit khác của địa chỉ này
c.Các bank thanh ghi :
32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi Bộ lệnhcủa 89S52 hổ trợ 8 thanh ghi (RO đến R7) và theo mặc định (sau khi Reset hệthống) các thanh ghi này ở các địa chỉ 00H-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 một byte dùng địa chỉ thanh ghi Tất nhiên, thao tác tương tự cóthể được thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai:MOV A,05H
Trang 30Các lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn cáclệnh tương ứng nhưng dùng địa chỉ trực tiếp Các giá trị dữ liệu được dùng thườngxuyên nên dùng một trong các thanh ghi này.
Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọnbank thanh ghi trong từ trạng thái chương trình (PSW) Giả sử rằng bank thanh ghi
3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H:MOV R0,A
Ý tưởng dùng "các bank thanh ghi" cho phép "chuyển hướng" chương trìnhnhanh và hiệu qủa (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêngkhông phụ thuộc vào các phần khác)
3.1.3 Các thanh ghi chức năng đặt biệt
Các thanh ghi nội của 89S52 được truy xuất ngầm định bởi bộ lệnh Ví dụlệnh "INC A" sẽ tăng nội dung của thanh ghi tích lũy A lên 1 Tác động này đượcngầm định trong mã lệnh
Các thanh ghi trong 89S52 được định dạng như một phần của RAM trênchip Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽkhông có lợi khi đặt chúng vào trong RAM trên chip) Ðó là lý do để 89S52 cónhiều thanh ghi Cũng như R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR:Special Funtion Rgister) ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH Chú
ý rằng hầu hết 128 địa chỉ từ 80H đến FFH không được định nghĩa Chỉ có 21 địachỉ SFR là được định nghĩa
Ngoại trừ tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số cácSFR được truy xuất dùng địa chỉ trực tiếp chú ý rằng một vài SFR có thể được địachỉ hóa bit hoặc byte Người thiết kế phải thận trọng khi truy xuất bit và byte Ví
dụ lệnh sau:
SETB 0E0H
Sẽ Set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi Ta thấyrằng E0H đồng thời là địa chỉ byte của thanh ghi tích lũy và là địa chỉ bit có trọng
số nhỏ nhất trong thanh ghi tích lũy Vì lệnh SETB chỉ tác động trên bit, nên chỉ
có địa chỉ bit là có hiệu quả
a.Từ trạng thái chương trình:
Từ trạng thái chương trình (PSW: Program Status Word) ở địa chỉ D0Hchứa các bit trạng thái như bảng tóm tắt sau:
Bảng 3.3: Thanh ghi trạng thái chương trình
D7HD6HD5HD4H
Cờ nhớ
Cờ nhớ phụ
Cờ 0Bit 1 chọn bank thanh ghi
Trang 31D2HD1HD0H
Bit chọn bank thanh ghi
00=bank 0; địa chỉ 00H-07H01=bank 1: địa chỉ 08H-0FH10=bank 2:địa chỉ 10H-17H11=bank 3:địa chỉ 18H-1FH
ADD A,#1
Sẽ trả về thanh ghi tích lũy kết qủa 00H và set cờ nhớ trong PSW
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thihành trên bit Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờnhớ:
ANL C,25H
Cờ nhớ phụ:
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa của 4 bit thấptrong khoảng 0AH đến 0FH Nếu các giá trị cộng được là số BCD, thì sau lệnhcộng cần có DA A( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớnhơn 9 trở về tâm từ 0-9
Cờ 0 (F0) là một bit cờ đa dụng dành các ứng dụng của người dùng
Các bit chọn bank thanh ghi
Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghi được tíchcực Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếucần Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanhghi R7 (địa chỉ byte IFH) đến thanh ghi tích lũy::
SETB RS1
SETB RSO
MOV A,R7
Khi chương trình được hợp dịch các địa chỉ bit đúng được thay thế cho các
ký hiệu "RS1" và "RS0" Vậy lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H
b.Thanh ghi B:
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho cácphé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
Trang 32và B rồi trả về kết qủa 16 bit trong A (byte thấp) và B (byte cao) Lệnh DIV AB sẽchia A cho B rồi trả về kết qủa nguyên trong A và phần dư trong B Thanh ghi Bcũng có thể được xem như thanh ghi đệm đa dụng Nó được địa chỉ hóa ttừng bitbằng các địa chỉ bit FOH đến F7H.
c.Con trỏ ngăn xếp:
Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H 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 baogồm các thao tác 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ệnhcấ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ẽ dọc dữ liệu và làm giảm SP Ngăn xếp của 89S52 được giữtrong RAM nội và được giới hạn các địa chỉ có thể truy xuất bằng địa chỉ giántiếp chúng là 128 byte đầu của 89S52
Ðể khởi động lại SP với ngăn xếp bắt đầu tại 60H, các lệnh sau đây được dùng:MOV SP,#%FH
Trên 89S52 ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trênchip là 7FH Sở dĩ cùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ lệuđầu tiên
Người thiết kế có thể chọn không phải khởi động lại con trỏ ngăn xếp mà
để nó lấy giá trị mặc định khi reset hệ thống Giá trị măc định đó là 07H và kết qủa
là ngăn đầu tiên để cất dữ liệu có địa chỉ 08H Nếu phần mềm ứng dụng khôngkhởi động lại SP, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùngRAM này đã được dùng làm ngăn xếp
Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu giữtạm thời và lấy lại dữ liệu hoặc được truy xuất ngầm bằng các lệnh gọi chươngtrình con (ACALL, LACALL) và các lệnh trở về (RET,RETI) để cất và lấy lại bộđếm chương trình
d.Con trỏ dữ liệu:
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanhghi 16 bit ở địa chỉ 82H(DPL: byte thấp) và 83H (DPH:byte cao) Ba lệnh sau sẽghi 55H vào RAM ngoài ở địa chỉ 1000H:
e.Các thanh ghi port xuất nhâp:
Các port của 89S52 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90 H, Port
2 ở địa chỉ A0H và Port 3 ở địa chỉ B0H Tất cả các Port đều được địa chỉ hóatừng bit Ðiều đó cung cấp một khả năng giao tiếp thuận lợi
f.Các thanh ghi timer:
Trang 3389S52 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặcđếm sự kiện Timer 0 ở địa chỉ 8AH (TL0:byte thấp) và 8CH (TH0:bytecao).Timer 1 ở địa chỉ 8BH (TL1:byte thấp) và 8DH (TH1: byte cao) việc vậnhành timer được set bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanhghi điều khiển timer (TCON) ở địa chỉ 88H Chỉ có TCON được địa chỉ hóa từngbit.
g.Các thanh ghi port nối tiếp:
89S52 chức một port nối tiếp trên chip 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 cho việc giao tiếp với các IC khác
có giao tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch ) Một thanh ghigọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H ssẽ giữ cả hai giữ liệu truyền
và nhận Khi truyền dữ liệu thì ghi lên SBUF khi nhận dữ liệu thì đọc SBUF Cácmode 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) (được địa chỉ hóa từng bit) ở địa chỉ 98H
3.1.4 Bộ định thời timer
Bảng 3.5: Thanh ghi chức năng đặc biệt dùng timer
Thanh ghi chế độ timer (TMOD).
Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc chotimer 0 và timer 1
Bảng 3.6: Tóm tắt thanh ghi TMOD
7 GATE 1 Bit (Mở) cổng, khi lên 1 timer chỉ chạy khiINT 1 ở mức cao.
Bit chọn chế độ counter/timer
1=bộ đếm sự kiện
0=bộ định khoảng thời gian
Trang 3400: chế độ 0: timer 13 bit01: chế độ 1: timer 16 bit10: chế độ 2: tự động nạp lại11: chế độ 3: tách timer
3 GATE 0 Bit (Mở) cổng, khi lên 1 timer chỉ chạy khiINT 0 ở mức cao.
Thanh đ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 0
và trimer 1
Bảng 3.7: Thanh ghi điều khiển timer
TCON.7 TF1 8FH Cờ báo tràn timer 1 Đặt bởi phần cứng khitràn, được xoá bằng 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 TR1 8EH Bit điều khiển timer 1 chạy Đặt/xoá bằng phầnmềm cho timer chạy/ngưng.
TCON.4 TR0 8CH Bit điều khiển timer 0 chạy
Cờ cạnh ngắt 1 bên ngoài, đặt bởi phần cứngkhi phát hiện một cạnh xuống (IT1=1) hoặcmức thấp (IT1=0) ở INT1, xoá bằng phần mềmhoặc phần cứng khi CPU chỉ đến chương trìnhphục vụ ngắt
TCON.2 IT 8AH Cờ kiểu ngắt 1 bên ngoài Đặt/xoá bằng phần mềm để ngắt ngoài tích cực
cạnh xuống/mức thấp
- 1 ngắt port nối tiếp
Tất cả các ngắt sẽ không được đặt sau khi reset hệ thống và cho phép ngắt riêng
rẽ bởi phần mềm
a.Cho phép và không cho phép ngắt.
Trang 35Mỗi nguồn ngắt được cho phép hoặc không cho phép từng ngắt một quathanh ghi chức năng đặt biệt cố định địa chỉ bit IE (Interrupt Enable : cho phépngắt) ở địa chỉ A8H Cũng như các bit cho phép mỗi nguồn ngắt, có một bit chophép hoặc cấm toàn bộ được xóa để cấm tất cả các ngắt hoặc được đặt lên 1 để chophép tất cả các ngắt.
Bit Ký hiệu Địa chỉ bit Mô tả (1=cho phép,0=cấm)
AFHAEHADHACHABHAAHA9H
8H
Cho phép hoặc cấm toàn bộKhông được định nghĩaCho phép ngắt từ timer 2 (8052)Cho phép ngắt Port nối tiếp Cho phép ngắt từ timer 1Cho phép ngắt ngoài 1Cho phép ngắt từ timer 0Cho phép ngắt ngoài 0 Bảng 3.8: Ngắt và cấm ngắt
b.Ưu tiên ngắt.
Mỗi nguồn ngắt đuợc lập trình riêng vào một trong hai mức ưu tiên quathanh ghi chức năng đặc biệt được địa chỉ bit Ip (Interrupt priority : ưu tiên ngắt) ởđịa chỉ B8H
BDHBCHBBHBAHB9H B8H
Không được định nghĩaKhông được định nghĩa
Ưu tiên cho ngắt từ timer 2 (8052)
Ưu tiên cho ngắt Port nối tiếp
Ưu tiên cho ngắt từ timer 1
Ưu tiên cho ngắt ngoài
Ưu tiên cho ngắt từ timer 0
Ưu tiên cho ngắt ngoài 0
Các ngắt ưu tiên được xóa sau khi reset hệ thống để đặt tất cả các ngắt ở mức ưutiên thấp hơn
- Trạng thái ngắt hiện hành được cất bên trong
- Các ngắt được chặn tại mức của ngắt
Trang 36- Nap vàp DC địa chỉ Vector của ISR.
- ISR thực thi
ISR thực thi và đáp ứng ngắt ISR hoàn tất bằng lệnh RET1 Ðiều này làm lấylại giá trị cũ của PC từ ngăn xếp và lấy lại trạng thái ngắt cũ Chương trình lại tiếptục thi hành tại nơi mà nó dừng
Ngắt cổng nối tiếp xẩy ra khi hoặc cờ phát (TI) hoặc cờ ngắt thu (KI) được đặt lên
1 Ngắt phát xẩy ra khi một ký tự đã được nhận xong và đang đợi trong SBUF đểđược đọc
Các ngắt cổng nối tiếp khác với các ngắt timer Cờ gây ra ngắt cổng nối tiếpkhông bị xóa bằng phần cứng khi CPU chuyển tới ngắt Do có hai nguồn ngắtcổng nối tiếp TI và RI Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽđược xóa bằng phần mềm Các ngắt timer cờ ngắt cờ ngắt được xóa bằng phầncứng khi CPU hướng tới ISR