Đồ án Giao tiếp PC và vi xử lý trong hệ thống SCADA

Như chúng ta đã biết trong điều kiện khoa học kỹ thuật và kinh tế phát triển như hiện nay thì qui trình tự động hóa trong công nghiệp và sản xuất hầu như không thể thiếu được . Nó đóng một vai tró hết sức quan trọng trong việc giúp tăng năng suất , tăng độ chính xác và do đó tăng hiệu quả sản xuất . Trong đó một vai trò không thể không nhắc đến của qui trình tự động hóa là thu thập dữ liệu và điều khiển từ xa . Để kiểm tra tình hình sản xuất cũng như trạng thái hoạt động của từng phân xưởng ta không thể cứ cho người đến tận nơi , kiểm soát từng hoạt động và quay về báo cáo nếu có sự cố xảy ra mà nhất thiết phải có một hệ thống thu thập dữ liệu từ xa . Khi đó, người kỹ sư vận hành chỉ cần ngồi tại bàn điều khiển và quan sát những trạng thái được cập nhật về liên tục để có thể xử lý kịp thời những tình huống xảy ra thông qua quá trình liên kết dữ liệu, mà không phải mất thời gian đi đến nơi có xảy ra sự cố . Không dừng ở đó , việc thu thập dữ liệu và điều khiển từ xa còn là một nhân tố quản lý, một yếu tố tất yếu cho sự phát triển của tất cả các ngành nghề , các lĩnh vực khác như giao thông vận tải ( theo dõi các trạm giao thông đường bộ, hàng hải , hàng không ) , điện lực , y tế . . . Biết được ý nghĩa và tầm quan trọng của nó nên chúng em quyết định nghiên cứu và hy vọng có cơ hội mở rộng đề tài này . Tổng quan về công việc thực hiện như sau : - Xây dựng một tập lệnh trong giao tiếp giữa Máy tính và micro-controller. - Xây dựng một giao thức truyền nhận thông tin (Protocol). - Sử dụng tập lệnh theo yêu cầu mong muốn .

doc80 trang | Chia sẻ: ngtr9097 | Lượt xem: 2244 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Giao tiếp PC và vi xử lý trong hệ thống SCADA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC: NỘI DUNG trang Giới thiệu chung 01 CHƯƠNG 1: GIAO THỨC TRUYỀN THÔNG 03 Giới thiệu 03 Protocol 05 Khái niệm 05 Xây dựng Protocol 06 Cấu trúc frame dữ liệu 06 Xây dựng Protocol 08 Truyền thông nối tiếp 09 Thanh ghi diều khiển đường truyền 10 Thanh ghi điều khiển MODEM 11 Thanh ghi trạng thái đường dây 12 Chuẩn giao tiếp RS-232 13 Giới thiệu IC Max_232 15 CHƯƠNG 2: CƠ LƯỢC AT89C51 17 Khái quát về họ IC MCS-51 17 Giới thiệu AT89C52 18 Những đặc trưng cơ bản 20 Cấu hình chân 20 Tổ chức bộ nhớ 25 RAM đa dụng 25 RAM địa chỉ hoá từng bit 27 Các bank thanh ghi 27 Các thanh ghi chức năng đặc biệt 29 Từ trạng thái chương trình 30 Thanh ghi B 32 Con trỏ ngăn xếp 32 Con trỏ dữ liệu 33 Các thanh ghi port xuất nhập 33 Các thanh ghi timer 34 Các thanh ghi port nối tiếp 35 Các thanh ghi ngắt 36 Thanh ghi điều khiển công suất 36 Bảo vệ bộ nhớ 36 Hoạt động của port nối tiếp 37 Giới thiệu 37 Thanh ghi điều khiển port nối tiếp 38 Các chế độ hoạt động 40 Khởi động và truy xuất các thanh ghi cổng nối tiếp 44 Tốc độ baud port nối tiếp 47 CHƯƠNG 3: RTX51 TINY 50 Giới thiệu chung 50 Giới thiệu phần mềm KEIl 50 Chương trình tuần hoàn thời gian biểu của RTX51 51 Các yêu cầu và định nghĩa 55 Các hàm thư viện của RTX51 56 CHƯƠNG 4: BOARD DEMO-KIT 59 Khối hiển thị 60 Khối giao tiếp A/D - D/A 62 Khối RS-232 68 Khối output (rơle) 70 Khối input 71 CHƯƠNG 5: Phần 1: TẬP LỆNH 72 Giới thiệu tập lệnh 72 Nội dung tập lệnh 73 Phần 2: MÔ TẢ CHƯƠNG TRÌNH 76 Chương trình nhận chuỗi 78 Chương trình kiểmtra 80 Chương trình xử lý tập lệnh 81 Chương trình đóng gói dữ liệu 83 Chương trình Demo-Kit 85 Phần 3: Chương trình 88 Báo cáo kết quả 146 Giới thiệu chung : Như chúng ta đã biết trong điều kiện khoa học kỹ thuật và kinh tế phát triển như hiện nay thì qui trình tự động hóa trong công nghiệp và sản xuất hầu như không thể thiếu được . Nó đóng một vai tró hết sức quan trọng trong việc giúp tăng năng suất , tăng độ chính xác và do đó tăng hiệu quả sản xuất . Trong đó một vai trò không thể không nhắc đến của qui trình tự động hóa là thu thập dữ liệu và điều khiển từ xa . Để kiểm tra tình hình sản xuất cũng như trạng thái hoạt động của từng phân xưởng ta không thể cứ cho người đến tận nơi , kiểm soát từng hoạt động và quay về báo cáo nếu có sự cố xảy ra mà nhất thiết phải có một hệ thống thu thập dữ liệu từ xa . Khi đó, người kỹ sư vận hành chỉ cần ngồi tại bàn điều khiển và quan sát những trạng thái được cập nhật về liên tục để có thể xử lý kịp thời những tình huống xảy ra thông qua quá trình liên kết dữ liệu, mà không phải mất thời gian đi đến nơi có xảy ra sự cố . Không dừng ở đó , việc thu thập dữ liệu và điều khiển từ xa còn là một nhân tố quản lý, một yếu tố tất yếu cho sự phát triển của tất cả các ngành nghề , các lĩnh vực khác như giao thông vận tải ( theo dõi các trạm giao thông đường bộ, hàng hải , hàng không … ) , điện lực , y tế . . . Biết được ý nghĩa và tầm quan trọng của nó nên chúng em quyết định nghiên cứu và hy vọng có cơ hội mở rộng đề tài này . Tổng quan về công việc thực hiện như sau : Xây dựng một tập lệnh trong giao tiếp giữa Máy tính và micro-controller. Xây dựng một giao thức truyền nhận thông tin (Protocol). Sử dụng tập lệnh theo yêu cầu mong muốn . Xây dựng một chương trình demo như một ứng dụng cụ thể của đề tài . Chương 1: GIAO THỨC TRUYỀN THÔNG GIỚI THIỆU: Sơ đồ các lớp cơ bản xây dựng cho quá trình liên kết dữ liệu giữa 2 đối tượng sử dụng: Mục đích chính của luận văn này không nhằm thực hiện một ứng dụng điều khiển cụ thể mà tạo nên một ứng dụng mới trong giao tiếp dữ liệu giữa hai đối tượng là máy tính và khối vi xử lý. Vì thế, chương trình người sử dụng, liên kết giữa hai đối tượng sử dụng- user 1và user2 ( tức chương trình Demo-Kit thực hiện trong phần cuối chương trình ) không phải là trọng tâm mà chỉ là một ứng dụng cụ thể của đề tài. Vì thế, nó chỉ xây dựng các dạng sóng vào ra một cách đơn giản, mang ý nghĩa mô phỏng cho những gì thực hiện được trong việc xây dựng chương trình. Kết quả mong muốn của luận văn là xây dựng được một môi trường thuận lợi cho quá trình trao đổi thông tin giữa hai đối tượng sử dụng. Hay nói khác hơn, đây là một tầng đệm về ngôn ngữ giao tiếp, một quá trình trung gian giúp cho việc liên kết dữ liệu được diễn ra một cách trôi chảy theo mong muốn của người sử dụng. Các lớp cơ bản được xây dựng trong hệ thống này là: lớp vật lý, lớp liên kết dữ liệu (datalink ), lớp quản lý truyền tin và sau cùng là lớp dữ liệu. Lớp vật lý: là các yếu tố đặc trưng bởi mức điện áp hay dòng điện cho các ngõ vào ra. Tiêu biểu cho lớp này là các phương tiện như thiết bị điện (dây dẫn, chân IC…) hay các chuẩn giao tiếp giúp cho lớp liên kết dữ liệu được thực hiện. Một trong các thủ tục protocol trong liên kết dữ liệu đơn giản nhất cho lớp này là sử dụng chuẩn giao tiếp RS-232 trong truyền thông nối tiếp. Lớp liên kết dữ liệu: lớp này quan tâm đến các dạng truyền dữ liệu (đồng bộ hay bất đồng bộ), tốc độ sử dụng, kiểm tra và sửa lỗi, chế độ phát lại (echo)… đây là phần trọng tâm của một chương trình liên kết dữ liệu, xây dựng Protocol cho phần này là thiết lập các thủ tục liên kết và truy xuất dữ liệu. Lớp quản lý truyền tin: lớp này có nhiệm vụ quản lý dữ liệu (ghi nhận và truy xuất dữ liệu từ các vùng địa chỉ của các tín hiệu vào ra theo định nghĩa của tập lệnh), phần giới thiệu tập lệnh được thực hiện trong chương 5. Lớp dữ liệu: lớp này đảm nhận vai trò ghi nhận các giá trị dữ liệu tại đầu mỗi user, bao gồm các dạng tín hiệu điều khiển như dạng xung, dạng mức và tín hiệu dạng A/D. Vấn đề cần quan tâm chính của chúng ta là xây dựng một chuẩn cho tầng liên kết dữ liệu (các thủ tục protocol). PROTOCOL: Khái niệm: Protocol cho tầng liên kết dữ liệu là một phương thức hay thủ tục truyền thông được đặt ra mà một qui trình truyền nhận thông tin phải tuân theo. Nó bao gồm tập hợp đồng nhất các qui tắc điều hành nhằm đảm bảo sự chính xác của một hệ thống hoặc mạng trong quá trình trao đổi thông tin. Trước khi tìm hiểu về protocol của tầng liên kết dữ liệu một cách chi tiết, chúng ta xem qua một số kỹ thuật sử dụng để thực thi hoặc mô tả một protocol. Theo lý thuyết, kiểm tra giá trị của một quá trình hoạt động nhằm chắc rằng trong quá trình hoạt động của hệ thống sẽ không có một điều kiện không mong muốn nào hoặc các trạng thái bất thường xảy ra khi protocol hoạt động “break down” (ví dụ như khi rơi vào một vòng lặp vô tận hoặc gặp phải một trường hợp mà tất cả các hoạt động đều bị dừng và hệ thống bị khóa “locks up” ). Với mục đích minh họa những kỹ thuật kiểm tra và mô tả khác nhau này, chúng ta xét một tầng liên kết dữ liệu đơn giản bán song công: stop–and–wait và tự động lặp lại yêu cầu như một ví dụ.Về cơ bản protocol này quản lý hoạt động của hai trạm ( được xem là đồng nhất ) tại mỗi đầu của một liên kết dữ liệu .Protocol này bao gồm một trạm ( đầu “1” ) gởi một frame dữ liệu mang một dãy số đến một trạm khác ( đầu “2” ). Frame dữ liệu này sẽ chứa thêm vào một gói thông tin khác của dữ liệu thực tại . Kết thúc việc truyền có một vùng đệm nhận, nơi mà các gói dữ liệu này được chứa từ computer chủ cục bộ hoặc cuối cùng là lưu trữ theo ưu tiên trong một frame dữ liệu và bắt đầu truyền qua datalink .Kể cả sau khi truyền dữ liệu trong vùng đệm vào “1” , các dữ liệu giống nhau cũng được giữ trong vùng đệm cho đến khi có thông báo đã nhận được từ một đầu khác ( đầu “2” ) mà khung dữ liệu chứa gói dữ liệu này đã nhận được thành công. Điều kiện sau cùng (nhận thành công 1 frame dữ liệu) được cho biết bởi đầu trạm 2,đầu này gởi frame dãy số của một frame hợp lệ được nhận sau cùng trở về từ trạm 1 như một phần của frame dữ liệu kế bắt đầu gởi từ “2” sang “1” . Ví dụ : Nếu đầu 1 vừa gởi một frame đến đầu 2 nó sẽ không được phép gởi frame kế ( chứa một gói dữ liệu mới ) cho đến khi nó nhận được một frame từ đầu 2 mang theo thông tin trả lời đã nhận tốt . Nếu đầu 1 không nhận được thông báo này trở về từ đầu 2 trong vòng một khoảng thời gian nghỉ (timeout) được định trước , nó sẽ truyền lại frame gởi đến đầu 2 và hy vọng trong thời gian này nó nhận được thông báo đã nhận đúng từ đầu 2 . Và nếu không thì sau vài lần lặp lại (được định trước ) mà đầu “1” vẫn không nhận được thông báo nhận đúng từ đầu “2” nó xem như đường truyền bị lỗi và thông báo ra ngoài. Xây dựng Protocol: Xây dựng một protocol cho quá trình trao đổi dữ liệu trong trường hợp mạch vi xử lý đóng vai trò slave và máy tính (PC) đóng vai trò master trong quá trình truyền nhận thông tin. Cấu trúc frame dữ liệu: Trong chế độ hoạt động này khối vi xử lý không có yêu cầu gởi cho PC mà chỉ trả lời kết quả theo yêu cầu nhận được từ PC tuân theo qui tắc của tập lệnh được xây dựng trong luận văn này . Một Protocol được đặt ra cho liên kết dữ liệu với một frame truyền được chứa các byte qui định như sau : Header  Mã ID  Control fiel  Length  Các byte DATA   Bốn byte đầu của frame truyền được gọi chung là các byte control fiels bao gồm : Một byte đầu tiên là byte header : là ký tự qui định nhằm đánh dấu cho đầu mỗi frame truyền. Một byte mã ID là mã số thứ tự của frame truyền mỗi khi có một yêu cầu mới cho vi xử lý (mã ID được đánh số liên tục từ 0-99 và trở về 0). Mã ID này sẽ mang một ý nghĩa quan trọng cho việc mở rộng đề tài luận văn sau này (kết nối nhiều frame truyền liên tiếp). Một byte control fiel : đây là byte chức năng để kiểm tra thông tin cho mỗi frame truyền . Byte control fiel được định nghĩa như sau : X  X  X  X  X  b2  b1  b0   + 5bit đầu có giá trị tùy định (có thể được sử dụng khi mở rộng đề tài này nhằm dùng vào việc tăng biến điều khiển ). + bit b0 : kiểm tra nội dung frame truyền . b0=0 : frame truyền có dữ liệu kèm theo (số byte data >0 ) b0=1 : frame truyền không có dữ liệu. Trường hợp này xảy rakhi frame được gởi nhằm mục đích nhắc lại nội dung frame gởi vừa rồi. + bit b1 : kiểm tra lần gởi của một yêu cầu từ PC b1=0 : frame được gởi lần đầu (gởi 1 yêu cầu mới cho vi xử lý) b1=1 : frame gởi lại (mang cùng một nội dung với chuỗi DATA trước đó). + bit b2 : bit này chỉ được gởi đi từ vi xử lý để báo với PC kết quả của lần truyền vừa rồi b2=0 : dữ liệu gởi từ PC đến vi xử lý nhận đúng b2=1 : dữ liệu gởi từ PC đến vi xử lý bị lỗi 1 byte length : chỉ số byte của chuỗi data cộng một byte “(” kết thúc frame truyền. Các byte data : mang thông tin yêu cầu của master (PC) đối với slave (vi xử lý) dựa trên qui tắc tập lệnh . Chuỗi data bao gồm : ADDR  ADDR    . . .  (   Hai byte đầu chứa địa chỉ (được định nghĩa theo tập lệnh) và cuối cùng phải là kí tự ‘(’ Xây dựng protocol: Với frame truyền được định nghĩa như trên ta thiết lập một protocol cho quá trình giao tiếp dữ là: - Khối PC luôn đóng vai trò của một master, nghĩa là nó có quyền quyết định cho việc trao đổi dữ liệu có xảy ra hay không, và quyết định những yêu cầu cần thực thi đối với khối vi xử lý. Khối vi xử lý luôn đóng vai trò của một slave; trong quá trình hoạt động, nó phải chờ chỉ được quyền gởi tín hiệu trả lời mỗi khi nhận được yêu cầu từ PC. Do các tác vụ trong chương trình được thực hiện song song theo hệ thời gian thực (multitasking), nên đôi khi khối vi xử lý có thể gởi tín hiệu trả lời ngay khi yêu cầu từ PC gởi đến chưa được xử lý xong (nếu thời gian xử lý vượt quá khoảng thời gian quét tối đa qui định cho 1 tác vụ). Khi đó, khối vi xử lý sẽ tạo nên một frame truyền trả về PC, không mang theo nội dung trả lời cho yêu cầu của PC mà chỉ có các byte control fiels với mục đích thông báo kết qua vừa nhận được từ PC là đúng hay sai (nhờ vào bit b2 của byte control fiel). - Nếu trong một khoảng thời định trước mà PC chưa nhận được tín hiệu trả lời từ vi xử lý, nó sẽ gởi tiếp một frame khác. Frame này chỉ gồm các byte control fiels mà không mang theo yêu cầu mới cho vi xử lý nhằm mục đích nhắc lại frame vừa truyền. Khi nhận được frame này, khối vi xử lý kiểm tra quá trình xử lý trước đó thực hiện xong chưa và trả lời lại cho PC. - Nếu sau vài lần gởi mà PC vẫn không nhận được trả lời từ vi xử lý thì xem như đường truyền bị lỗi. Nếu đường truyền bị lỗi hoặc có thông báo lỗi từ vi xử lý gởi về thì PC sẽ gởi một frame truyền mới mang đầy đủ thông tin ban đầu. Mã ID của frame truyền được đặt ra nhằm mục đích để mở rộng chương trình sau này. Nếu trong trường hợp truyền nhận chuỗi dữ liệu có độ dài quá lớn hoặc truyền nhận file, ta không thể truyền một lần trên một frame mà phải cắt ra thành nhiều frame truyền. Khi đó, việc đánh mã ID chính xác sẽ giúp cho việc kết chuỗi dữ liệu nhận về không bị xáo trộn. Qui tắc đánh mã ID là nó chỉ được tăng dần sau mỗi lần trao đổi dữ liệu thành công, tức PC phải nhận được trả lời từ vi xử lý theo đúng yêu cầu mà nó gởi đến và kết thúc một chu trình liên kết dữ liệu. TRUYỀN THÔNG NỐI TIẾP: Ta có thể thực hiện truyền dữ liệu giữa máy tính và vi xử lý theo nhiều chuẩn khác nhau. Vì trong luận văn này sử dụng đến việc thu phát dữ liệu theo kiểu nối tiếp nên cần phải khái quát vài nét về các chuẩn truyền thông. Truyền thông nối tiếp là việc thu phát dữ liệu ở dạng chuỗi các xung điện – gọi là các bit. Hiệp hội điện tử công nghiệp (EIA) đưa ra các chuẩn truyền thông khác nhau như : RS 232-C, RS-422, RS-423, RS-485, RS-449,v.v..Ký hiệu RS là viết tắt của Recommended Standard, nghĩa là tiêu chuẩn khuyến cáo. Việc truyền dữ liệu nối tiếp theo chuẩn RS-232 có ưu điểm hơn truyền song song là mức điện áp hoạt động là +12V và –12V, khoảng cách truyền xa hơn, ít nhiễu hơn. Việc trao đổi dữ liệu diễn ra trên hai đường dẫn TxD và RxD, mức tín hiệu trên chân ra RxD tùy thuộc vào đường dẫn TxD và thường nằm trong khoảng –12V đến +12V, các bit dữ liệu được đảo ngược lại. Mức cao nằm giữa –3V và –12V, mức thấp nằm giữa +3V và +12V. Ở trạng thái tĩnh, trên đường dây có điện áp là –12V. Một chuỗi dữ liệu truyền đi được bắt đầu bằng một bit khởi đầu, tiếp theo đó là các bit dữ liệu, bit thấp đi trước. Số bit dữ liệu nằm trong khoảng 5 đến 8 bit, tiếp đó là bit kiểm tra chẳn lẻ và cuối cùng là bit kết thúc (stop bit). Tốc độ truyền được thiết lập bằng tham số Baudrate, là số bit truyền đi trong 1 giây, thông thường là 300, 600, 1200, 2400, 4800, 9600 và 19200. Việc thiết lập các thông số truyền nối tiếp được thực hiện bằng cách thay đổi các giá trị trong các thanh ghi phục vụ truyền nối tiếp. Bản đồ thanh ghi nội của bộ thu phát nối tiếp 8250 (không đồng bộ). Register name  Code  COM1  COM2  COM3  COM4  Function   Transmitter holding register  THR  3F8H  2F8H  3E8H  2E8H  OUTPUT   Receiver data register  RDR  3F8H  2F8H  3E8H  2E8H  INPUT   Baud rate divisor (LSB)  BRDL  3F8H  2F8H  3E8H  2E8H  OUTPUT   Baud rate divisor (MSB)  BRDH  3F9H  2F9H  3E9H  2E9H  OUTPUT   Interrupt enable register  IER  3F9H  2F9H  3E9H  2E9H  OUTPUT   Interrupt ID register  IID  3FAH  2FAH  3EAH  2EAH  INPUT   Line control register  LCR  3FBH  2FBH  3EBH  2EBH  OUTPUT   Modem control register  MDC  3FCH  2FCH  3ECH  2ECH  OUTPUT   Line status register  LST  3FDH  2FDH  3EDH  2EDH  INPUT   Modem status register  MSR  3FEH  2FEH  3EEH  2EEH  INPUT   1. Thanh ghi điều khiển đường truyền (Line Control Register): Bit cao của thanh ghi này gọi là bit chốt truy xuất hệ số chia. Nếu bit này được đặt lên 1 thì giá trị ở thanh ghi cơ sở được truy xuất làm byte thấp của thanh ghi hệ số chia chọn tốc độ truyền, và giá trị ở thanh ghi cơ sở +1 sẽ được truy xuất làm byte cao của thanh ghi hệ số chia chọn tốc độ truyền. Nếu bit này được xóa về 0 thì thanh ghi cơ sở sẽ thành thanh ghi đệm thu phát. 7  6  5  4  3  2  1  0     Bit  Nội dung   Bit 0 Bit 1  00 : 5 bit data ; 01 : 6 bit data 10 : 7 bit data ; 11 : 8 bit data   Bit 2  0 : 1 bit stop 1 : 1,5 hay 2 bit stop   Bit 3  0 : không kiểm tra parity 1 : kiểm tra parity   Bit 4  1 : kiểm tra parity chẵn 0 : kiểm tra parity lẻ   Bit 5  1 : nếu bit 4 = 1; 0 : nếu bit 4 = 0   Bit 6  Cho phép cấm đường truyền nối tiếp 1 : ngõ ra bị xoá trắng ; 0 : cấm   Bit 7  1 : chọn hệ số chia; 0 : bộ đệm thu, phát   2. Thanh ghi điều khiển MODEM: Thanh ghi điều khiển MODEM dùng để đặt giao thức bắt tay khi sự truyền thông sử dụng MODEM. 7  6  5  4  3  2  1  0     Bit  Nội dung   Bit 0  Data terminal ready 1 : DTR active; 0 : DTR inactive   Bit 1  Request to send; 1 : RTS active; 0 : RTS inactive   Bit 2  Output 1 (spare signal) 1 : OUT 1 : active; 0 : OUT 1 inactive   Bit 3  Output 2 (interrupt enable signal) 1 : Communication interrupt active 0 : Communication interrupt inactive   Bit 4  Loopback feature 1 : Transmitter output looped back to receiver register 0 : Normal operation   Bit 5,6,7  000   3. Thanh ghi trạng thái đường dây (Line Status Register): Báo cho máy tính biết thông tin, trạng thái của dữ liệu truyền đi. 7  6  5  4  3  2  1  0     Bit  Nội dung   Bit 0  1 : Có dữ liệu trong bộ đệm nhận   Bit 1  1 : Overrun error : dữ liệu bị chồng   Bit 2  1 : sai parity   Bit 3  1 : Framing error ( bit stop không hợp lệ)   Bit 4  1 : Báo ngắt (đường truyền trống )   Bit 5  1 : Thanh ghi phát trống   Bit 6  1 : Thanh ghi dịch và thanh ghi phát trống 0 : Thanh ghi dịch còn chứa dữ liệu   Bit 7  0   4. Chuẩn RS-232: Chuẩn RS-232 lần đầu tiên được giới thiệu vào năm 1962 do hiệp hội kỹ thuật điện tử EIA (Electronics Industries Association) như là chuẩn giao tiếp truyền thông giữa máy tính và một thiết bị ngoại vi (modem, máy vẽ, mouse, máy tính khác,……). Cổng giao tiếp RS-232 là giao diện phổ biến rộng rãi nhất. Người dùng máy tính PC còn gọi cổng này là COM 1, còn COM 2 để tự do cho các ứng dụng khác. Giống như cổng máy in, cổng nối tiếp RS-232 được sử dụng một cách rất thuận tiện cho mục đích đo lường và điều khiển. Việc truyền dữ liệu qua RS-232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp nhau trên một đường truyền dẫn. Trước hết, loại truyền này có thể dùng cho những khoảng cách lớn hơn, bởi vì các khả năng gây nhiễu nhỏ đáng kể hơn là dùng cổng song song. Việc dùng cổng song song có một nhược điểm đáng kể là cáp truyền dùng quá nhiều sợi, và vì vậy rất đắt tiền. Hơn nữa tín hiệu nằm trong khoảng 0 - 5V tỏ ra không thích ứng với khoảng cách lớn. Cổng nối tiếp RS không phải là một hệ thống Bus, nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm nối điểm giữa hai máy cần trao đổi thông tin với nhau. Một thành phần thứ ba không thể tham gia vào cuộc trao đổi thông tin này. Cổng Com 9 chân Bảng sắp xếp chân của cổng nối tiếp ở máy tính: 9 chân  25 chân  Chức năng   1 2 3 4 5 6 7 8 9  8 3 2 20 7 6 4 5 22  DCD _ Data Carrier Detect (Lối vào) RxD _ Receive Data (Lối vào) TxD _ Transmit Data (Lối ra) DTR _ Data Terminal Ready (Lối ra) GND _ Ground (Nối đất) DSR _ Data Set Ready (Lối vào) RTS _ Request to Send (Lối ra) CTS _ Clear to Send (Lối vào) RI _ Ring Indicator (Lối ra)   Việc truyền dữ liệu xảy ra trên hai đường dẫn. Qua chân cắm ra TxD, máy tính gởi dữ liệu của nó đến các thiết bị khác. Trong khi đó dữ liệu mà máy tính nhận được, lại được dẫn đến chân nối RxD. Các tín hiệu khác đóng vai trò như là tín hiệu hỗ trợ khi trao đổi thông tin và vì vậy không phải trong mọi ứng dụng đều dùng đến. Các bit dữ liệu được gởi đi theo kiểu đảo ngược, nghĩa là các bit có giá trị “1” sẽ có mức điện áp LOW, các bit có giá trị “0” sẽ có mức điện áp HIGH. Mức tín hiệu nhận và truyền qua chân RxD và TxD thông thường nằm trong khoảng –12V đến +12V. Mức điện áp đối với mức HIGH nằm giữa +3V đến +