เมนู
ฟรี
การลงทะเบียน
บ้าน  /  เกีย/ คำอธิบายเชิงลึกของมาตรฐาน EIA485 (RS485) อินเทอร์เฟซทางกายภาพ RS485 และ RS422 ความยาวบัสสูงสุด rs 485

คำอธิบายเชิงลึกของมาตรฐาน EIA485 (RS485) อินเทอร์เฟซทางกายภาพ RS485 และ RS422 ความยาวบัสสูงสุด rs 485

RS-485 เป็นมาตรฐานที่นำมาใช้ครั้งแรกโดยสมาคมอุตสาหกรรมอิเล็กทรอนิกส์ ในขณะนี้ มาตรฐานนี้พิจารณาคุณลักษณะทางไฟฟ้าของเครื่องรับและเครื่องส่งสัญญาณทุกชนิดที่ใช้ในระบบดิจิตอลบาลานซ์ต่างๆ

เขาเป็นอะไร?

ในบรรดาผู้เชี่ยวชาญ RS-485 เป็นชื่อของอินเทอร์เฟซที่ได้รับความนิยมซึ่งใช้งานอย่างแข็งขันในระบบควบคุมกระบวนการอุตสาหกรรมต่างๆ เพื่อเชื่อมต่อคอนโทรลเลอร์หลายตัวรวมถึงอุปกรณ์อื่น ๆ อีกมากมายเข้าด้วยกัน ข้อแตกต่างที่สำคัญระหว่างอินเทอร์เฟซนี้กับ RS-232 ทั่วไปที่เท่าเทียมกันคือช่วยให้สามารถรวมอุปกรณ์หลายประเภทพร้อมกันได้

เมื่อใช้ RS-485 การแลกเปลี่ยนข้อมูลความเร็วสูงจะมั่นใจได้ระหว่างอุปกรณ์หลายเครื่องผ่านเครื่องเดียว สายสองสายการสื่อสารในโหมดฮาล์ฟดูเพล็กซ์ มีการใช้กันอย่างแพร่หลายในอุตสาหกรรมสมัยใหม่ในกระบวนการขึ้นรูประบบควบคุมกระบวนการ

ช่วงและความเร็ว

เมื่อใช้มาตรฐานนี้ ข้อมูลสามารถส่งข้อมูลด้วยความเร็วสูงสุด 10 Mbit/s ในขณะที่ช่วงสูงสุดที่เป็นไปได้จะขึ้นอยู่กับความเร็วของการส่งข้อมูลโดยตรง ดังนั้นเพื่อให้มั่นใจถึงความเร็วสูงสุด ข้อมูลจึงสามารถส่งข้อมูลได้ไม่เกิน 120 เมตร ในขณะที่ข้อมูลจะถูกส่งด้วยความเร็ว 100 kbit/s มากกว่า 1,200 เมตร

จำนวนอุปกรณ์ที่เชื่อมต่อ

จำนวนอุปกรณ์ที่อินเทอร์เฟซ RS-485 สามารถรวมได้จะขึ้นอยู่กับตัวรับส่งสัญญาณที่ใช้ในอุปกรณ์โดยตรง เครื่องส่งแต่ละตัวได้รับการออกแบบให้ขับเคลื่อนเครื่องรับมาตรฐานได้มากถึง 32 เครื่องพร้อมกัน แต่โปรดทราบว่ามีเครื่องรับที่มีอิมพีแดนซ์อินพุตอยู่ที่ 50%, 25% หรือน้อยกว่าเครื่องมาตรฐานด้วยซ้ำ และหากใช้อุปกรณ์ดังกล่าว จำนวนรวมของ อุปกรณ์ก็จะเพิ่มขึ้นตามไปด้วย

ตัวเชื่อมต่อและโปรโตคอล

สายเคเบิล RS-485 ไม่ได้กำหนดรูปแบบเฉพาะของกรอบข้อมูลหรือโปรโตคอลการแลกเปลี่ยนใดๆ ให้เป็นมาตรฐาน ในกรณีส่วนใหญ่ จะใช้เฟรมเดียวกันกับที่ RS-232 ใช้ กล่าวคือ บิตข้อมูล บิตหยุดและเริ่มต้น และบิตพาริตีหากจำเป็น

การดำเนินงานของโปรโตคอลการแลกเปลี่ยนในส่วนใหญ่ ระบบที่ทันสมัยดำเนินการตามหลักการ “มาสเตอร์-สเลฟ” กล่าวคือ อุปกรณ์บางตัวบนเครือข่ายเป็นอุปกรณ์หลัก และใช้ความคิดริเริ่มในการแลกเปลี่ยนคำขอการส่งระหว่างอุปกรณ์ทาสทั้งหมดที่แตกต่างกันในที่อยู่แบบลอจิคัล โปรโตคอลที่ได้รับความนิยมมากที่สุดในปัจจุบันคือ Modbus RTU

เป็นที่น่าสังเกตว่าสายเคเบิล RS-485 ยังไม่มีตัวเชื่อมต่อหรือสายไฟประเภทใดโดยเฉพาะนั่นคือสามารถพบขั้วต่อเทอร์มินัล DB9 และอื่น ๆ ได้

การเชื่อมต่อ

บ่อยครั้งที่อินเทอร์เฟซนี้ใช้ในเครือข่ายท้องถิ่นที่รวมตัวรับส่งสัญญาณหลายตัวพร้อมกัน

เมื่อเชื่อมต่อ RS-485 คุณต้องเชื่อมต่อวงจรสัญญาณซึ่งปกติเรียกว่า A และ B เข้าด้วยกัน ในกรณีนี้การกลับขั้วไม่ได้แย่นัก เพียงแต่อุปกรณ์ที่เชื่อมต่อจะไม่ทำงาน

เมื่อใช้อินเทอร์เฟซ RS-485 คุณควรพิจารณาคุณสมบัติหลายประการของการทำงาน:

  • สื่อที่เหมาะสมที่สุดสำหรับการส่งสัญญาณคือสายคู่บิดเกลียว
  • ต้องเสียบปลายสายเคเบิลโดยใช้ตัวต้านทานขั้วต่อแบบพิเศษ
  • เครือข่ายที่ใช้มาตรฐานหรือ USB RS-485 จะต้องวางโดยไม่มีสายแยก
  • ควรเชื่อมต่ออุปกรณ์ด้วยความยาวที่สั้นที่สุดเท่าที่จะเป็นไปได้

การประสานงาน

การใช้ตัวต้านทานขั้วต่อแบบมาตรฐานหรือ USB RS-485 ช่วยให้มั่นใจได้ว่าปลายเปิดของสายเคเบิลจะเข้าคู่กันอย่างสมบูรณ์กับสายที่ตามมา ซึ่งช่วยลดความเป็นไปได้ที่จะเกิดการสะท้อนของสัญญาณโดยสิ้นเชิง

ความต้านทานเล็กน้อยของตัวต้านทานสอดคล้องกับคุณลักษณะอิมพีแดนซ์ของสายเคเบิลและสำหรับสายเคเบิลที่ใช้สายคู่ตีเกลียว ในกรณีส่วนใหญ่จะอยู่ที่ประมาณ 100-120 โอห์ม ตัวอย่างเช่นสายเคเบิล UTP-5 ที่ได้รับความนิยมในปัจจุบันซึ่งใช้อย่างแข็งขันในกระบวนการวางอีเธอร์เน็ตมีความต้านทานลักษณะเฉพาะที่ 100 โอห์ม สำหรับตัวเลือกสายเคเบิลอื่นๆ อาจใช้พิกัดอื่น

หากจำเป็น สามารถบัดกรีตัวต้านทานเข้ากับหน้าสัมผัสของขั้วต่อสายเคเบิลที่อยู่ในอุปกรณ์ปลายทางได้ ตัวต้านทานไม่ค่อยได้รับการติดตั้งในอุปกรณ์เนื่องจากต้องติดตั้งจัมเปอร์เพื่อเชื่อมต่อตัวต้านทาน ในกรณีนี้หากปิดอุปกรณ์ สายจะไม่ตรงกันโดยสิ้นเชิง และเพื่อให้แน่ใจว่าส่วนที่เหลือของระบบทำงานได้ตามปกติ คุณจะต้องเชื่อมต่อปลั๊กที่ตรงกัน

ระดับสัญญาณ

พอร์ต RS-485 ใช้วงจรการส่งข้อมูลแบบสมดุล นั่นคือระดับแรงดันไฟฟ้าในวงจรสัญญาณ A และ B จะเปลี่ยนไปตามแอนติเฟส

เซ็นเซอร์จะต้องให้ระดับสัญญาณ 1.5 V ที่โหลดสูงสุด และไม่เกิน 6 V หากอุปกรณ์ไม่ทำงาน ระดับแรงดันไฟฟ้าจะวัดแตกต่างกัน โดยแต่ละสายสัญญาณจะสัมพันธ์กัน

ในกรณีที่เครื่องรับตั้งอยู่ ระดับต่ำสุดของสัญญาณที่ได้รับไม่ว่าในกรณีใดๆ จะต้องมีอย่างน้อย 200 มิลลิโวลต์

อคติ

ในกรณีที่ไม่มีสัญญาณบนวงจรสัญญาณ จะเกิดการเคลื่อนตัวเล็กน้อย ซึ่งช่วยป้องกันเครื่องรับจากการเตือนที่ผิดพลาด

ผู้เชี่ยวชาญแนะนำให้มีอคติมากกว่า 200 mV เล็กน้อย เนื่องจากค่านี้สอดคล้องกับโซนที่ไม่น่าเชื่อถือของสัญญาณอินพุตตามมาตรฐาน ในกรณีนี้ วงจร A จะถูกดึงไปที่ขั้วบวกของแหล่งกำเนิด ในขณะที่วงจร B จะถูกดึงไปที่จุดร่วม

ตัวอย่าง

ตามอคติและแรงดันไฟฟ้าที่ต้องการของแหล่งพลังงาน การคำนวณจะดำเนินการ ตัวอย่างเช่น หากคุณต้องการได้รับอคติ 250 mV โดยใช้ตัวต้านทานเทอร์มินัล R T = 120 โอห์ม โดยที่แหล่งกำเนิดมีแรงดันไฟฟ้า 12 V เมื่อพิจารณาว่าในกรณีนี้ตัวต้านทานสองตัวเชื่อมต่อแบบขนานกันและไม่สนใจโหลดที่ฝั่งตัวรับโดยสิ้นเชิง กระแสไบแอสคือ 0.0042 A ในขณะที่ความต้านทานรวมของวงจรไบแอสคือ 2857 โอห์ม R cm ในกรณีนี้จะอยู่ที่ประมาณ 1,400 โอห์ม ดังนั้นคุณต้องเลือกค่าที่ใกล้เคียงที่สุด

ตัวอย่างจะใช้ตัวต้านทาน 1.5k สำหรับการไบแอส เช่นเดียวกับตัวต้านทาน 12 โวลต์ภายนอก นอกจากนี้ ระบบของเรายังมีเอาต์พุตแยกของแหล่งจ่ายไฟของตัวควบคุม ซึ่งเป็นจุดเชื่อมต่อชั้นนำในส่วนของวงจร

แน่นอนว่ามีตัวเลือกอื่น ๆ อีกมากมายสำหรับการนำไบแอสไปใช้โดยใช้ตัวแปลง RS-485 และองค์ประกอบอื่น ๆ แต่ในกรณีใด ๆ เมื่อวางวงจรไบแอสคุณจะต้องคำนึงถึงความจริงที่ว่าโหนดที่จะจัดเตรียมมันจะเปลี่ยนเป็นระยะ ปิดหรือสามารถลบออกจากเครือข่ายได้ในที่สุด

หากมีออฟเซ็ต ศักยภาพของวงจร A ที่ไม่ได้ใช้งานเต็มจะเป็นค่าบวกเมื่อเทียบกับวงจร B ซึ่งเป็นแนวทางหากอุปกรณ์ใหม่เชื่อมต่อกับสายเคเบิลโดยไม่มีเครื่องหมายสายไฟ

การเดินสายไฟและการบิดเบี้ยวไม่ถูกต้อง

การปฏิบัติตามคำแนะนำข้างต้นช่วยให้คุณสามารถส่งสัญญาณไฟฟ้าได้ตามปกติไปยังจุดต่างๆ บนเครือข่ายหากใช้โปรโตคอล RS-485 เป็นพื้นฐาน หากไม่เป็นไปตามข้อกำหนดบางประการเป็นอย่างน้อย สัญญาณจะเกิดการบิดเบือน การบิดเบือนที่เห็นได้ชัดเจนที่สุดจะเริ่มปรากฏขึ้นหากอัตราการแลกเปลี่ยนข้อมูลเกิน 1 Mbit/s แต่ในความเป็นจริงแล้ว แม้จะมีความเร็วต่ำกว่าก็ตาม ขอแนะนำอย่างยิ่งว่าอย่าละเลยคำแนะนำเหล่านี้ แม้ว่าเครือข่าย “จะทำงานได้ตามปกติแล้วก็ตาม” ”

จะตั้งโปรแกรมอย่างไร?

เมื่อเขียนโปรแกรมแอพพลิเคชั่นต่าง ๆ ที่ทำงานกับอุปกรณ์ที่ใช้ตัวแยก RS-485 และอุปกรณ์อื่น ๆ ที่มีอินเทอร์เฟซนี้ คุณจะต้องพิจารณาหลายประการ จุดสำคัญ- เรามาแสดงรายการกัน:

  • ก่อนเริ่มการส่งมอบพัสดุ จำเป็นต้องเปิดใช้งานเครื่องส่งสัญญาณก่อน แม้ว่าตามข้อมูลจากแหล่งที่มาบางแห่ง การจัดส่งสามารถดำเนินการได้ทันทีหลังจากเปิดเครื่อง ผู้เชี่ยวชาญบางคนแนะนำให้หยุดชั่วคราวในตอนแรก ซึ่งในเวลาจะเท่ากับความเร็วในการส่งข้อมูลของหนึ่งเฟรม ในกรณีนี้โปรแกรมการรับที่ถูกต้องจะมีเวลาในการระบุข้อผิดพลาดในกระบวนการชั่วคราวอย่างสมบูรณ์ ดำเนินการตามขั้นตอนการทำให้เป็นมาตรฐาน และเตรียมพร้อมสำหรับการรับข้อมูลในภายหลัง
  • หลังจากเผยแพร่ข้อมูลไบต์สุดท้ายแล้ว ขอแนะนำให้หยุดชั่วคราวก่อนที่จะตัดการเชื่อมต่ออุปกรณ์ RS-485 โดยเฉพาะอย่างยิ่งนี่เป็นเพราะความจริงที่ว่าตัวควบคุมพอร์ตอนุกรมมักจะมีรีจิสเตอร์สองตัวพร้อมกัน โดยอันแรกเป็นอินพุตแบบขนานและมีวัตถุประสงค์เพื่อรับข้อมูล ในขณะที่อันที่สองคือเอาต์พุตกะและใช้สำหรับเอาต์พุตแบบอนุกรม การขัดจังหวะการส่งสัญญาณใดๆ โดยคอนโทรลเลอร์จะถูกสร้างขึ้นเมื่อรีจิสเตอร์อินพุตว่างเปล่า เมื่อข้อมูลได้ถูกส่งไปยังรีจิสเตอร์กะแล้ว แต่ยังไม่ได้ออก ด้วยเหตุนี้เองที่หลังจากการออกอากาศถูกขัดจังหวะ คุณจะต้องคงการหยุดชั่วคราวไว้ก่อนที่จะปิดตัวส่งสัญญาณ ซึ่งควรจะยาวกว่าเฟรมประมาณ 0.5 บิต เพื่อให้การคำนวณแม่นยำยิ่งขึ้นแนะนำให้ศึกษาอย่างละเอียด เอกสารทางเทคนิคตัวควบคุมพอร์ตอนุกรมที่คุณใช้
  • เนื่องจากตัวส่ง ตัวรับ และตัวแปลง RS-485 อาจเป็นสายเดียวที่เชื่อมต่อกัน ตัวรับแบบเนทีฟจะรับการส่งสัญญาณจากตัวส่งสัญญาณของตัวเองด้วย มักจะเกิดขึ้นว่าในระบบที่มีการเข้าถึงสายแบบสุ่ม คุณลักษณะนี้ใช้ในกระบวนการตรวจสอบว่าไม่มีการชนกันระหว่างเครื่องส่งสัญญาณสองตัว ในระบบมาสเตอร์-สเลฟมาตรฐาน ขอแนะนำให้ปิดการใช้งานการขัดจังหวะจากตัวรับโดยสิ้นเชิงในระหว่างการส่งสัญญาณ

การกำหนดค่ารูปแบบบัส

อินเทอร์เฟซนี้ให้ความสามารถในการรวมอุปกรณ์โดยใช้รูปแบบ "บัส" เมื่ออุปกรณ์ทั้งหมดเชื่อมต่อกันโดยใช้สายคู่เดียว ในกรณีนี้ สายสื่อสารจะต้องจับคู่ด้วยตัวต้านทานขั้วต่อที่ปลายทั้งสองข้าง

เพื่อให้แน่ใจว่ามีการประสานงานในกรณีนี้จึงติดตั้งตัวต้านทานที่มีความต้านทาน 620 โอห์ม มีการติดตั้งบนอุปกรณ์เครื่องแรกและสุดท้ายที่เชื่อมต่อกับสายเสมอ ในเสียงส่วนใหญ่อย่างล้นหลาม อุปกรณ์ที่ทันสมัยนอกจากนี้ยังมีตัวต้านทานการจับคู่ในตัวซึ่งสามารถรวมไว้ในสายหากจำเป็นโดยการติดตั้งจัมเปอร์พิเศษบนบอร์ดอุปกรณ์

เนื่องจากจัมเปอร์ได้รับการติดตั้งตั้งแต่แรกในสถานะการจัดส่ง คุณต้องถอดจัมเปอร์ออกจากอุปกรณ์ทั้งหมดตามลำดับ ยกเว้นจัมเปอร์ตัวแรกและตัวสุดท้ายที่เชื่อมต่อกับสาย ในตัวแปลง-รีพีตเตอร์ของรุ่น S2000-PI สำหรับแต่ละเอาต์พุต ความต้านทานที่ตรงกันจะเปิดขึ้นโดยใช้สวิตช์ ในขณะที่อุปกรณ์ S2000-KS และ S2000-K มีลักษณะเฉพาะด้วยความต้านทานที่ตรงกันในตัว ซึ่งเป็นผลมาจาก ซึ่งไม่ต้องใช้จัมเปอร์ในการเชื่อมต่อ

เพื่อให้สายการสื่อสารยาวขึ้น ขอแนะนำให้ใช้รีพีทเตอร์แบบพิเศษที่มีการสลับทิศทางการส่งสัญญาณอัตโนมัติเต็มรูปแบบ

การกำหนดค่าดาว

การต๊าปใดๆ ในสาย RS-485 นั้นไม่เป็นที่พึงปรารถนา เนื่องจากมีความผิดเพี้ยนของสัญญาณค่อนข้างมาก แต่จากมุมมองในทางปฏิบัติแล้ว การต๊าปนั้นสามารถยอมรับได้หากความยาวของการต๊าปสั้น ในกรณีนี้ ไม่จำเป็นต้องติดตั้งตัวต้านทานที่ตรงกันในแต่ละสาขา

ในระบบจำหน่าย RS-485 ที่ควบคุมโดยคอนโซล หากอุปกรณ์หลังและอุปกรณ์เชื่อมต่อกันเป็นสายเดียวกัน แต่ได้รับพลังงานจากแหล่งที่ต่างกัน จำเป็นต้องรวมวงจร 0 V ของอุปกรณ์ทั้งหมดและคอนโซลเข้าด้วยกัน รับรองความเท่าเทียมกันของศักยภาพของพวกเขา หากไม่เป็นไปตามข้อกำหนดนี้ รีโมทคอนโทรลอาจมีการเชื่อมต่อกับอุปกรณ์ไม่เสถียร หากใช้สายเคเบิลที่มีสายคู่บิดเกลียวหลายคู่ ก็สามารถใช้คู่ที่ว่างโดยสมบูรณ์สำหรับวงจรปรับสมดุลศักย์ไฟฟ้าได้ หากจำเป็น เหนือสิ่งอื่นใด คุณสามารถใช้คู่บิดเกลียวแบบมีชีลด์ได้หากไม่มีการต่อสายดินของหน้าจอ

สิ่งที่ต้องพิจารณา?

ในกรณีส่วนใหญ่ กระแสไฟฟ้าที่ไหลผ่านสายปรับศักย์ไฟฟ้ามีค่าค่อนข้างน้อย อย่างไรก็ตาม หากอุปกรณ์ 0 V หรือแหล่งจ่ายไฟเชื่อมต่อกับบัสภาคพื้นดินในพื้นที่หลายจุด ความต่างศักย์ระหว่างวงจร 0 V ต่างๆ อาจเป็นได้ หลายหน่วยและในบางกรณีถึงสิบโวลต์ในขณะที่กระแสที่ไหลผ่านวงจรปรับสมดุลศักย์อาจมีนัยสำคัญมาก นี่เป็นสาเหตุทั่วไปที่ทำให้การเชื่อมต่อระหว่างรีโมทคอนโทรลและอุปกรณ์ไม่เสถียร ซึ่งส่งผลให้อุปกรณ์เหล่านี้อาจล้มเหลวได้

ด้วยเหตุนี้จึงจำเป็นต้องยกเว้นความเป็นไปได้ของการต่อสายดินของวงจร 0 V หรืออย่างน้อยที่สุดในการต่อสายดินของวงจรนี้ที่จุดใดจุดหนึ่ง นอกจากนี้ยังจำเป็นต้องคำนึงถึงความเป็นไปได้ของความสัมพันธ์ระหว่าง 0 V และวงจรกราวด์ป้องกันที่มีอยู่ในอุปกรณ์ที่ใช้ในระบบสัญญาณเตือนด้วย

ในสถานประกอบการที่มีสภาพแวดล้อมทางแม่เหล็กไฟฟ้าที่ค่อนข้างรุนแรง คุณสามารถเชื่อมต่อเครือข่ายนี้ผ่านสายคู่บิดเกลียวที่มีฉนวนหุ้มได้ ในกรณีนี้ อาจมีช่วงสูงสุดที่สั้นกว่า เนื่องจากความจุของสายเคเบิลสูงกว่า

คำอธิบายเชิงลึกของมาตรฐาน EIA485 (RS485)

1. ตัวรับสัญญาณแบบอะซิงโครนัสสากล (UART)

การสื่อสารผ่านพอร์ตอนุกรมแบบอะซิงโครนัสอาจเป็นเรื่องในอดีต แต่เป็นการยากที่จะค้นหาตัวควบคุมที่ไม่มี UART อยู่ในอุปกรณ์ต่อพ่วง ดังนั้นฉันคิดว่ายังเร็วเกินไปที่จะฝังเขา หากเป็นเช่นนั้น คงจะเป็นประโยชน์ที่จะพูดสักสองสามคำเกี่ยวกับวิธีการทำงาน คำอธิบายการใช้งานพอร์ตอนุกรมเฉพาะอยู่ในเอกสารข้อมูลสำหรับคอนโทรลเลอร์แต่ละตัว ดังนั้นฉันจะอธิบายให้ทุกคนทราบ

UART สามารถแบ่งออกเป็นเครื่องรับ (Receiver) และเครื่องส่ง (Transmitter) UART ประกอบด้วย: เครื่องกำเนิดสัญญาณนาฬิกาสื่อสาร (เครื่องกำเนิดอัตราบอด) รีจิสเตอร์ควบคุม รีจิสเตอร์สถานะ บัฟเฟอร์ และรีจิสเตอร์กะของเครื่องรับและเครื่องส่ง เครื่องกำเนิดอัตราการเพิ่มจะตั้งค่าความถี่สัญญาณนาฬิกาของเครื่องรับส่งสัญญาณสำหรับความเร็วการสื่อสารที่กำหนด การลงทะเบียนการควบคุมจะตั้งค่าโหมดการทำงานของพอร์ตอนุกรมและการขัดจังหวะ การลงทะเบียนสถานะจะตั้งค่าสถานะสำหรับเหตุการณ์ต่างๆ อักขระที่ได้รับจะเข้าไปในบัฟเฟอร์ตัวรับ และอักขระที่ส่งจะถูกวางลงในบัฟเฟอร์ตัวส่งสัญญาณ รีจิสเตอร์กะตัวส่งสัญญาณคือคลิปที่บิตของสัญลักษณ์ที่ส่ง (เฟรม) ถูกส่งไปยังพอร์ตอนุกรม รีจิสเตอร์ bit shift ของตัวรับจะสะสมบิตที่ได้รับจากพอร์ต สำหรับเหตุการณ์ต่างๆ จะมีการตั้งค่าแฟล็กและอินเทอร์รัปต์จะถูกสร้างขึ้น (เสร็จสิ้นการรับ/ส่งเฟรม การปล่อยบัฟเฟอร์ ข้อผิดพลาดต่างๆ)

UART เป็นอินเทอร์เฟซแบบฟูลดูเพล็กซ์ กล่าวคือ เครื่องรับและเครื่องส่งสัญญาณสามารถทำงานพร้อมกันได้โดยแยกจากกัน แต่ละคนมีพอร์ตที่กำหนด - ขาคอนโทรลเลอร์หนึ่งขา พอร์ตตัวรับถูกกำหนดให้เป็น RX พอร์ตตัวส่งสัญญาณถูกกำหนดให้เป็น TX โดยการตั้งค่าระดับบนพอร์ตเหล่านี้ตามลำดับโดยสัมพันธ์กับสายสามัญ (“กราวด์”) ข้อมูลจะถูกส่ง ตามค่าเริ่มต้น ตัวส่งสัญญาณจะตั้งค่าระดับสายให้เป็นเอกภาพ การส่งเริ่มต้นด้วยการส่งบิตที่มีระดับศูนย์ (บิตเริ่มต้น) จากนั้นบิตข้อมูลจะไปที่บิตที่มีนัยสำคัญน้อยที่สุดก่อน ( ระดับต่ำ- "0" ระดับสูง - "1") การส่งจะสิ้นสุดด้วยการส่งหนึ่งหรือสองบิตด้วยระดับหน่วย (บิตหยุด)

สัญญาณไฟฟ้าของโครงพัสดุมีลักษณะดังนี้:

ก่อนการสื่อสารระหว่างอุปกรณ์ทั้งสองจะเริ่มได้ ตัวรับส่งสัญญาณต้องได้รับการกำหนดค่าให้มีความเร็วการสื่อสารและรูปแบบเฟรมเท่ากัน

ความเร็วการสื่อสารหรือบอดเรตวัดเป็นบอด - จำนวนบิตที่ส่งต่อวินาที (รวมถึงบิตเริ่มต้นและหยุด) ความเร็วนี้ถูกตั้งค่าในตัวสร้างอัตราการเพิ่มโดยการหารความถี่ของระบบด้วยค่าสัมประสิทธิ์ที่ระบุ ช่วงความเร็วทั่วไป: 2400 ... 115200 บอด

รูปแบบเฟรมจะกำหนดจำนวนบิตหยุด (1 หรือ 2) จำนวนบิตข้อมูล (8 หรือ 9) และวัตถุประสงค์ของบิตข้อมูลที่เก้า ทั้งหมดนี้ขึ้นอยู่กับประเภทของคอนโทรลเลอร์

ตามกฎแล้วเครื่องรับและเครื่องส่งสัญญาณจะมีการโอเวอร์คล็อกด้วยความถี่ 16 เท่า นี่จำเป็นสำหรับการสุ่มตัวอย่างสัญญาณ เครื่องรับจับขอบที่ตกลงมาของบิตเริ่มต้นแล้ว นับหลายรอบสัญญาณนาฬิกา และอีกสามรอบสัญญาณนาฬิกาถัดไปจะอ่าน (ตัวอย่าง) พอร์ต RX นี่คือช่วงกลางของจังหวะเริ่มต้นพอดี หากค่าตัวอย่างส่วนใหญ่เป็น "0" บิตเริ่มต้นจะถือว่าถูกต้อง มิฉะนั้นผู้รับจะเข้าใจผิดว่าเป็นสัญญาณรบกวนและรอขอบที่ตกลงมาถัดไป หลังจากกำหนดบิตเริ่มต้นได้สำเร็จ เครื่องรับจะสุ่มตัวอย่างบิตข้อมูลตรงกลางและนับบิต "0" หรือ "1" สำหรับตัวอย่างส่วนใหญ่ โดยเขียนลงใน shift register บิตหยุดจะถูกสุ่มตัวอย่างด้วย และหากระดับบิตหยุดไม่ใช่ "1" UART จะตรวจพบข้อผิดพลาดของเฟรมและตั้งค่าสถานะที่เกี่ยวข้องในรีจิสเตอร์ควบคุม


เนื่องจากอัตราบูสต์ถูกกำหนดโดยการหารความถี่ของระบบ เมื่อถ่ายโอนโปรแกรมไปยังอุปกรณ์ที่มีตัวสะท้อนควอทซ์ที่แตกต่างกัน จึงจำเป็นต้องเปลี่ยนการตั้งค่า UART ที่เกี่ยวข้อง

2. อินเทอร์เฟซ RS-485

อินเทอร์เฟซ RS-485 (อีกชื่อหนึ่งคือ EIA/TIA-485) เป็นหนึ่งในมาตรฐานเลเยอร์การสื่อสารทางกายภาพที่ใช้กันทั่วไปที่สุด ฟิสิคัลเลเยอร์เป็นช่องทางการสื่อสารและวิธีการส่งสัญญาณ (เลเยอร์ 1 ของโมเดลการเชื่อมต่อโครงข่ายระบบเปิด OSI)

เครือข่ายที่สร้างขึ้นบนอินเทอร์เฟซ RS-485 ประกอบด้วยตัวรับส่งสัญญาณที่เชื่อมต่อโดยใช้สายคู่บิด - สายบิดสองเส้น อินเทอร์เฟซ RS-485 ขึ้นอยู่กับหลักการของการส่งข้อมูลส่วนต่าง (สมดุล) สาระสำคัญคือการส่งสัญญาณหนึ่งผ่านสายสองเส้น ยิ่งไปกว่านั้น สายหนึ่ง (มีเงื่อนไข A) จะส่งสัญญาณต้นฉบับ และอีกสายหนึ่ง (มีเงื่อนไข B) จะส่งสัญญาณแบบผกผัน กล่าวอีกนัยหนึ่ง หากมี "1" บนสายหนึ่ง อีกเส้นหนึ่งก็จะเป็น "0" และในทางกลับกัน ดังนั้นจึงมีความแตกต่างที่อาจเกิดขึ้นระหว่างสายสองสายของคู่บิดเกลียวเสมอ: ที่ "1" เป็นบวกที่ "0" เป็นลบ


ความแตกต่างที่อาจเกิดขึ้นนี้เองที่ส่งสัญญาณ วิธีการส่งสัญญาณนี้ให้ภูมิคุ้มกันสูงต่อการรบกวนโหมดทั่วไป การรบกวนในโหมดร่วมคือการรบกวนที่ส่งผลต่อสายไฟทั้งสองเส้นอย่างเท่าเทียมกัน ตัวอย่างเช่น คลื่นแม่เหล็กไฟฟ้าที่ผ่านส่วนของสายสื่อสารจะเหนี่ยวนำให้เกิดศักย์ไฟฟ้าในสายไฟทั้งสองเส้น หากสัญญาณถูกส่งโดยศักย์ในสายเดียวที่สัมพันธ์กับสายสามัญเช่นเดียวกับใน RS-232 การรบกวนบนสายนี้สามารถบิดเบือนสัญญาณที่สัมพันธ์กับสายสามัญ (กราวด์) ที่ดูดซับสัญญาณรบกวนได้ดี นอกจากนี้ ความต่างศักย์กราวด์จะลดลงข้ามความต้านทานของเส้นลวดร่วมที่ยาว ซึ่งเป็นแหล่งที่มาของการบิดเบือนเพิ่มเติม และด้วยการส่งเฟืองท้ายจะไม่เกิดความผิดเพี้ยน ในความเป็นจริง ถ้าสายไฟสองเส้นวางชิดกันและพันกันด้วยซ้ำ การรับสายทั้งสองเส้นจะเท่ากัน ศักยภาพในสายไฟทั้งสองที่โหลดเท่ากันจะเปลี่ยนแปลงเท่ากัน ในขณะที่ความต่างศักย์ข้อมูลยังคงไม่เปลี่ยนแปลง

การใช้ฮาร์ดแวร์ของอินเทอร์เฟซ - ชิปตัวรับส่งสัญญาณที่มีอินพุต/เอาต์พุตส่วนต่าง (ไปยังสาย) และพอร์ตดิจิทัล (ไปยังพอร์ต UART ของคอนโทรลเลอร์) อินเทอร์เฟซนี้มีสองตัวเลือก: RS-422 และ RS-485

RS-422 เป็นอินเทอร์เฟซแบบดูเพล็กซ์เต็มรูปแบบ การรับและส่งสัญญาณเกิดขึ้นบนสายคู่ที่แยกจากกัน สายแต่ละคู่สามารถมีเครื่องส่งสัญญาณได้เพียงตัวเดียวเท่านั้น

RS-485 เป็นอินเทอร์เฟซแบบฮาล์ฟดูเพล็กซ์ การรับและส่งสัญญาณเกิดขึ้นบนสายไฟคู่เดียวโดยมีการแยกเวลา เครือข่ายอาจมีตัวส่งสัญญาณได้หลายตัว เนื่องจากสามารถปิดได้ในโหมดรับ


D (คนขับ) - ตัวส่งสัญญาณ;
R (ตัวรับ) - ตัวรับ;
DI (อินพุตไดรเวอร์) - อินพุตดิจิตอลของเครื่องส่งสัญญาณ
RO (เอาต์พุตตัวรับ) - เอาต์พุตดิจิทัลของเครื่องรับ
DE (เปิดใช้งานไดรเวอร์) - การอนุญาตให้ใช้งานเครื่องส่งสัญญาณ
RE (เปิดใช้งานตัวรับ) - การอนุญาตให้ใช้งานตัวรับ
เอ - อินพุต/เอาท์พุตดิฟเฟอเรนเชียลโดยตรง;
B - อินพุต/เอาต์พุตส่วนต่างผกผัน;
Y - เอาต์พุตส่วนต่างโดยตรง (RS-422)
Z - เอาต์พุตส่วนต่างผกผัน (RS-422)

ฉันจะดูรายละเอียดเพิ่มเติมเกี่ยวกับตัวรับส่งสัญญาณ RS-485 เอาต์พุตดิจิตอลของเครื่องรับ (RO) เชื่อมต่อกับพอร์ต UART ของตัวรับ (RX) อินพุตดิจิตอลของเครื่องส่งสัญญาณ (DI) ไปยังพอร์ตเครื่องส่งสัญญาณ UART (TX) เนื่องจากเครื่องรับและตัวส่งเชื่อมต่อกันที่ฝั่งดิฟเฟอเรนเชียล จึงต้องปิดเครื่องส่งระหว่างการรับสัญญาณ และต้องปิดเครื่องรับระหว่างการส่งสัญญาณ เพื่อจุดประสงค์นี้ จะใช้อินพุตควบคุม - การอนุญาตของผู้รับ (RE) และการอนุญาตของเครื่องส่งสัญญาณ (DE) เนื่องจากอินพุต RE เป็นแบบผกผัน จึงสามารถเชื่อมต่อกับ DE และสลับเครื่องรับและเครื่องส่งสัญญาณด้วยสัญญาณเดียวจากพอร์ตใดก็ได้ของคอนโทรลเลอร์ ที่ระดับ "0" - ทำงานสำหรับการรับสัญญาณ ที่ "1" - สำหรับการส่งสัญญาณ


เครื่องรับซึ่งได้รับความต่างศักย์ (UAB) ที่อินพุตดิฟเฟอเรนเชียล (AB) จะแปลงเป็นสัญญาณดิจิทัลที่เอาต์พุต RO ความไวของเครื่องรับอาจแตกต่างกัน แต่ผู้ผลิตชิปตัวรับส่งสัญญาณเขียนในเอกสารเกี่ยวกับช่วงเกณฑ์ที่รับประกันสำหรับการรับรู้สัญญาณ โดยทั่วไปเกณฑ์เหล่านี้คือ ±200 mV นั่นคือเมื่อ UAB > +200 mV - เครื่องรับตรวจพบ "1" เมื่อ UAB< -200 мВ - приемник определяет "0". Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения - правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.

อุปกรณ์ทั้งหมดเชื่อมต่อกับสายเคเบิลคู่บิดเกลียวเส้นเดียวในลักษณะเดียวกัน: เอาต์พุตโดยตรง (A) ไปยังสายหนึ่ง, เอาต์พุตแบบกลับด้าน (B) ไปยังอีกสายหนึ่ง

โดยทั่วไปแล้วอิมพีแดนซ์อินพุตของตัวรับที่ฝั่งสาย (RAB) คือ 12KΩ เนื่องจากกำลังเครื่องส่งไม่จำกัด จึงทำให้เกิดการจำกัดจำนวนเครื่องรับที่เชื่อมต่อกับสาย ตามข้อกำหนด RS-485 เมื่อคำนึงถึงตัวต้านทานปลายสายแล้ว เครื่องส่งสัญญาณสามารถขับเคลื่อนตัวรับได้สูงสุด 32 ตัว อย่างไรก็ตามมีวงจรขนาดเล็กจำนวนหนึ่งที่มีความต้านทานอินพุตเพิ่มขึ้นซึ่งช่วยให้คุณสามารถเชื่อมต่ออุปกรณ์มากกว่า 32 เครื่องเข้ากับสายได้

ความเร็วในการสื่อสารสูงสุดตามข้อกำหนด RS-485 สามารถเข้าถึง 10 Mbaud/วินาที ระยะทางสูงสุดคือ 1200 ม. หากจำเป็นต้องจัดระเบียบการสื่อสารในระยะทางที่มากกว่า 1200 ม. หรือเชื่อมต่ออุปกรณ์มากกว่าความสามารถในการรับน้ำหนักของเครื่องส่งสัญญาณจะใช้ทวนสัญญาณพิเศษ

พารามิเตอร์อินเทอร์เฟซมาตรฐาน RS-422 RS-485
จำนวนเครื่องส่ง/เครื่องรับที่อนุญาต 1 / 10 32 / 32
ความยาวสายเคเบิลสูงสุด 1200 ม 1200 ม
ความเร็วการสื่อสารสูงสุด 10 เมกะบิต/วินาที 10 เมกะบิต/วินาที
ช่วงแรงดันไฟฟ้าของเครื่องส่งสัญญาณ "1" +2...+10 โวลต์ +1.5...+6 โวลต์
ช่วงแรงดันไฟฟ้า "0" ของเครื่องส่งสัญญาณ -2...-10 โวลต์ -1.5...-6 โวลต์
ช่วงแรงดันไฟฟ้าโหมดทั่วไปของเครื่องส่งสัญญาณ -3...+3 ว -1...+3 วิ
ช่วงแรงดันไฟฟ้าของตัวรับที่ยอมรับได้ -7...+7 ว -7...+12 ว
ช่วงเกณฑ์ความไวของตัวรับ ±200 มิลลิโวลต์ ±200 มิลลิโวลต์
กระแสไฟลัดวงจรสูงสุดของไดรเวอร์ 150 มิลลิแอมป์ 250 มิลลิแอมป์
ความต้านทานโหลดเครื่องส่งสัญญาณที่อนุญาต 100 โอห์ม 54 โอห์ม
ความต้านทานอินพุตของตัวรับ 4 kโอห์ม 12 kโอห์ม
เวลาที่เพิ่มขึ้นของสัญญาณเครื่องส่งสูงสุด บิต 10% 30% บิต
3. การประสานงานและการกำหนดค่าสายสื่อสาร

ในระยะห่างที่มากระหว่างอุปกรณ์ที่เชื่อมต่อผ่านคู่บิดและความเร็วในการส่งข้อมูลสูง เอฟเฟกต์เส้นยาวที่เรียกว่าจะเริ่มปรากฏขึ้น เหตุผลก็คือความเร็วจำกัดของการแพร่กระจายของคลื่นแม่เหล็กไฟฟ้าในตัวนำ ความเร็วนี้น้อยกว่าความเร็วแสงในสุญญากาศอย่างมาก และมากกว่า 200 mm/ns เล็กน้อย สัญญาณไฟฟ้ายังมีแนวโน้มที่จะสะท้อนจากปลายเปิดของสายส่งและกิ่งก้านของมัน การเปรียบเทียบคร่าวๆ คือคูน้ำที่เต็มไปด้วยน้ำ คลื่นที่สร้างขึ้นที่ปลายด้านหนึ่งเคลื่อนไปตามรางน้ำ และเมื่อสะท้อนจากผนังด้านท้ายแล้ว ก็กลับไป และสะท้อนอีกครั้ง ไปเรื่อยๆ จนกระทั่งหายไป สำหรับสายสั้นและความเร็วในการส่งข้อมูลต่ำ กระบวนการนี้เกิดขึ้นเร็วมากจนไม่มีใครสังเกตเห็น อย่างไรก็ตาม เวลาตอบสนองของผู้รับคือสิบหรือร้อย ns ในช่วงเวลาดังกล่าวหลายสิบเมตร สัญญาณไฟฟ้ามันไม่หายไปทันที และหากระยะห่างมากพอ สัญญาณด้านหน้าที่สะท้อนที่ปลายเส้นและย้อนกลับกลับสามารถบิดเบือนสัญญาณปัจจุบันหรือสัญญาณถัดไปได้ ในกรณีเช่นนี้ คุณจะต้องระงับเอฟเฟ็กต์การสะท้อนออกไป

ศาสตร์แห่งวิศวกรรมไฟฟ้าเสนอวิธีแก้ปัญหานี้ สายสื่อสารใดๆ มีพารามิเตอร์ดังกล่าวเป็นคุณลักษณะอิมพีแดนซ์ Zv ขึ้นอยู่กับลักษณะของสายเคเบิลที่ใช้ แต่ไม่ขึ้นอยู่กับความยาว สำหรับคู่ตีเกลียว มักใช้ในสายสื่อสาร Zв = 120 โอห์ม ปรากฎว่าหากที่ปลายระยะไกลของเส้นระหว่างตัวนำของคู่บิดคุณเปิดตัวต้านทานที่มีค่าเท่ากับความต้านทานลักษณะของเส้นจากนั้นคลื่นแม่เหล็กไฟฟ้าที่ไปถึง "จุดสิ้นสุด" ก็คือ ถูกดูดซับโดยตัวต้านทานดังกล่าว ดังนั้นชื่อของมัน - ตัวต้านทานที่ตรงกันหรือ "เทอร์มิเนเตอร์"

ผลของการสะท้อนกลับและความจำเป็นในการจับคู่ที่เหมาะสมทำให้เกิดข้อจำกัดในการกำหนดค่าลิงก์

สายสื่อสารต้องเป็นสายคู่ตีเกลียวเส้นเดียว เครื่องรับและเครื่องส่งสัญญาณทั้งหมดเชื่อมต่อกับสายเคเบิลนี้ ระยะห่างจากเส้นถึงชิปอินเทอร์เฟซ RS-485 ควรสั้นที่สุดเท่าที่จะเป็นไปได้ เนื่องจากการแตกแขนงที่ยาวทำให้เกิดความไม่ตรงกันและทำให้เกิดการสะท้อน

ตัวต้านทานที่ตรงกัน Rt 120 โอห์ม (0.25 W) จะรวมอยู่ในปลายสายเคเบิลทั้งสองที่ไกลที่สุด (Zв = 120 โอห์ม) หากมีตัวส่งสัญญาณเพียงตัวเดียวในระบบและอยู่ที่ปลายสาย ตัวต้านทานปลายสายหนึ่งตัวที่ปลายอีกด้านของสายก็เพียงพอแล้ว คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการกำหนดค่าเครือข่ายที่ถูกต้องและไม่ถูกต้องได้ในบทความ “การเดินสายที่ถูกต้องของเครือข่าย RS-485”


4. การชดเชยการป้องกัน

ดังที่ได้กล่าวไปแล้ว ตัวรับของชิป RS-485 ส่วนใหญ่มีช่วงเกณฑ์การรับรู้สัญญาณที่ อินพุต A-B- ±200มิลลิโวลต์ ถ้า |Uab| น้อยกว่าเกณฑ์ (ประมาณ 0) ดังนั้นเอาต์พุตของตัวรับ RO อาจมีระดับลอจิคัลโดยพลการเนื่องจากการรบกวนนอกเฟส สิ่งนี้สามารถเกิดขึ้นได้เมื่อเครื่องรับถูกตัดการเชื่อมต่อจากสาย หรือเมื่อไม่มีเครื่องส่งที่ทำงานอยู่บนสาย เมื่อไม่มีใครตั้งระดับ เพื่อหลีกเลี่ยงการส่งสัญญาณผิดพลาดไปยังเครื่องรับ UART ในสถานการณ์เหล่านี้ จำเป็นต้องรับประกันความต่างศักย์ Uab > +200mV ที่อินพุต A-B อคตินี้ ในกรณีที่ไม่มีสัญญาณอินพุต จะมีตรรกะ "1" ที่เอาต์พุตของตัวรับ ดังนั้นจึงรักษาระดับบิตหยุดไว้

ซึ่งทำได้ง่าย - อินพุตโดยตรง (A) ควรเชื่อมต่อกับแหล่งจ่ายไฟ และอินพุตผกผัน (B) เข้ากับกราวด์ ตัวหารที่ได้คือ:


Rin - ความต้านทานอินพุตของเครื่องรับ (ปกติ 12 kOhm)
Rc - ตัวต้านทานที่ตรงกัน (120 โอห์ม);
Rзс - ตัวต้านทานอคติป้องกัน

ค่าความต้านทานสำหรับตัวต้านทานไบแอสป้องกัน (Rzc) สามารถคำนวณได้อย่างง่ายดายโดยใช้ตัวแบ่ง จำเป็นต้องตรวจสอบให้แน่ใจว่า Uab > 200mV แรงดันไฟฟ้า - 5V ความต้านทานของแขนกลางคือ 120Ohm//120Ohm//12KOhm สำหรับรีซีฟเวอร์แต่ละตัว - ประมาณ 57 โอห์ม (สำหรับรีซีฟเวอร์ 10 ตัว) ดังนั้นจึงออกมาที่ประมาณ 650 โอห์มสำหรับแต่ละ Rзс สองตัว หากต้องการไบแอสโดยมีระยะขอบ ความต้านทาน Rзс จะต้องน้อยกว่า 650 โอห์ม ตามเนื้อผ้าพวกเขาตั้งค่า 560 โอห์ม

โปรดทราบ: เมื่อคำนวณคะแนนRзс ภาระจะถูกนำมาพิจารณาด้วย หากมีเครื่องรับหลายเครื่องค้างอยู่ในสาย ค่าของ Rзс ควรน้อยกว่านี้ ในสายส่งยาวจำเป็นต้องคำนึงถึงความต้านทานของคู่บิดซึ่งสามารถ "กิน" ส่วนหนึ่งของความต่างศักย์ไบแอสสำหรับอุปกรณ์ที่อยู่ห่างไกลจากจุดที่กระชับ สำหรับสายยาว ควรวางตัวต้านทานแบบดึงขึ้นสองชุดไว้ที่ปลายระยะไกลทั้งสองข้างถัดจากเทอร์มิเนเตอร์

ผู้ผลิตเครื่องรับส่งสัญญาณหลายรายอ้างว่าคุณลักษณะป้องกันความผิดพลาดในผลิตภัณฑ์ของตนซึ่งมีอคติในตัว การคุ้มครองดังกล่าวควรแยกออกเป็นสองประเภท:

ความน่าเชื่อถือในวงจรเปิด(วงจรเปิดไม่ปลอดภัย) ตัวรับส่งสัญญาณเหล่านี้ใช้ตัวต้านทานแบบดึงขึ้นในตัว ตัวต้านทานเหล่านี้มักจะมีความต้านทานสูงเพื่อลดการใช้กระแสไฟฟ้า ด้วยเหตุนี้ ความลำเอียงที่ต้องการจึงมีให้สำหรับอินพุตดิฟเฟอเรนเชียลแบบเปิด (ไม่ได้โหลด) เท่านั้น ในความเป็นจริงหากเครื่องรับถูกตัดการเชื่อมต่อจากสายหรือไม่ได้โหลดจากนั้นที่แขนกลางของตัวแบ่งจะเหลือเพียงความต้านทานอินพุตขนาดใหญ่เท่านั้นซึ่งความต่างศักย์ไฟฟ้าที่ต้องการจะลดลง อย่างไรก็ตามหากโหลดตัวรับส่งสัญญาณบนบรรทัดที่มีตัวต้านทานที่ตรงกันสองตัวที่ 120 โอห์ม แขนของตัวแบ่งเฉลี่ยจะน้อยกว่า 60 โอห์ม ซึ่งเมื่อเปรียบเทียบกับการดึงอัพความต้านทานสูงแล้วไม่มีอะไรลดลงอย่างมีนัยสำคัญ ดังนั้น หากไม่มีตัวส่งสัญญาณที่ทำงานอยู่บนสายโหลด ตัวต้านทานในตัวจะให้ค่าไบแอสไม่เพียงพอ ในกรณีนี้ ยังคงจำเป็นต้องติดตั้งตัวต้านทานไบแอสป้องกันภายนอกตามที่อธิบายไว้ข้างต้น

ความน่าเชื่อถือที่แท้จริง(ป้องกันความผิดพลาดอย่างแท้จริง) ในอุปกรณ์เหล่านี้ เกณฑ์การรับรู้สัญญาณจะเปลี่ยนไป ตัวอย่างเช่น: -50 / -200 mV แทนที่จะเป็นเกณฑ์มาตรฐาน ±200 mV นั่นคือเมื่อ Uab>-50mV เอาต์พุตของตัวรับ RO จะเป็นตรรกะ "1" และเมื่อ Uab<-200 - на RO будет "0". Таким образом, и в разомкнутой и в пассивной линии при разности потенциалов Uab близкой к нулю, приемник выдаст "1". Для таких приемопередатчиков внешнее защитное смещение не требуется. Тем не менее, для лучшей помехозащищенности все-таки стоит дополнительно немного подтягивать линию.

การลบอคติในการป้องกันภายนอกนั้นมองเห็นได้ทันที - กระแสจะไหลผ่านตัวแบ่งอย่างต่อเนื่องซึ่งอาจยอมรับไม่ได้ในระบบที่มีการบริโภคต่ำ ในกรณีนี้ คุณสามารถทำสิ่งต่อไปนี้:

ก) ลดการใช้กระแสไฟโดยเพิ่มความต้านทาน Rзс แม้ว่าผู้ผลิตเครื่องรับส่งสัญญาณจะเขียนเกี่ยวกับเกณฑ์การรับรู้ที่ 200 mV แต่ในทางปฏิบัติ 100 mV หรือน้อยกว่านั้นก็เพียงพอแล้ว ดังนั้นคุณสามารถเพิ่มแนวต้าน Rзс ได้สองถึงสามครั้งทันที ในกรณีนี้ ภูมิคุ้มกันทางเสียงจะลดลงบ้าง แต่ในหลายกรณีก็ไม่สำคัญ

ข) ใช้ตัวรับส่งสัญญาณที่ไม่ปลอดภัยจริงพร้อมเกณฑ์การรับรู้แบบเลื่อน ตัวอย่างเช่นไมโครวงจร MAX3080 และ MAX3471 มีเกณฑ์: -50mV / -200mV ซึ่งรับประกันระดับความสามัคคีที่เอาต์พุตตัวรับในกรณีที่ไม่มีออฟเซ็ต (Uab = 0) จากนั้นสามารถถอดตัวต้านทานไบแอสป้องกันภายนอกออกได้หรือความต้านทานเพิ่มขึ้นอย่างมาก

วี) อย่าใช้การจับคู่ตัวต้านทานโดยไม่จำเป็น หากสายไม่ได้โหลดที่ 2 x 120 โอห์ม การดึงอัพหลายกิโลโอห์มจะเพียงพอที่จะทำให้เกิดอคติในการป้องกัน ขึ้นอยู่กับจำนวนของตัวรับบนสาย

สำหรับสายแยกออปโต ควรดึงขึ้นไปที่กำลังและกราวด์ของสายแยก หากไม่ได้ใช้การแยกแสง คุณสามารถดึงมันเข้ากับแหล่งจ่ายไฟใดก็ได้ เนื่องจากตัวแบ่งจะสร้างความแตกต่างที่อาจเกิดขึ้นเพียงเล็กน้อยระหว่างบรรทัด A และ B คุณเพียงแค่ต้องจำเกี่ยวกับความแตกต่างที่อาจเกิดขึ้นระหว่าง "กราวด์" ของอุปกรณ์ ซึ่งอยู่ห่างจากกัน

5. การแยกการรับสัญญาณเมื่อส่งสัญญาณในโหมดฮาล์ฟดูเพล็กซ์

เมื่อทำงานกับอินเทอร์เฟซ RS-485 แบบฮาล์ฟดูเพล็กซ์ (การรับและส่งสัญญาณผ่านสายคู่เดียวที่มีการแยกเวลา) คุณสามารถลืมได้ว่า UART ของคอนโทรลเลอร์นั้นเป็นฟูลดูเพล็กซ์นั่นคือรับและส่งอย่างอิสระและพร้อมกัน .

โดยทั่วไป ในขณะที่ตัวรับส่งสัญญาณ RS-485 กำลังส่งสัญญาณ เอาต์พุตของตัวรับ RO จะถูกสลับไปที่สถานะที่สาม และขา RX ของตัวควบคุม (ตัวรับ UART) “ค้างอยู่ในอากาศ” เป็นผลให้ในระหว่างการส่งสัญญาณที่ตัวรับ UART แทนที่จะเป็นระดับบิตหยุด (“1”) จะมีบางสิ่งที่ไม่ทราบและการรบกวนใด ๆ จะถูกถือเป็นสัญญาณอินพุต ดังนั้นคุณต้องปิดตัวรับ UART (ผ่านรีจิสเตอร์ควบคุม) ระหว่างการส่งสัญญาณหรือดึง RX ขึ้นมาเป็นอันหนึ่ง สำหรับไมโครคอนโทรลเลอร์บางตัวสามารถทำได้โดยทางโปรแกรม - เปิดใช้งานการดึงพอร์ตในตัว


หมายเหตุ: ไมโครคอนโทรลเลอร์ AT90S8535 (AVR Atmel) มีข้อบกพร่อง - เมื่อ UART ถูกปิดใช้งาน UART จะยังคงได้รับ และหลังจากเปิดใช้งานการรับสัญญาณ ไบต์ที่ได้รับครั้งแรกอาจเสียหาย ดังนั้นเขาจึงต้องเปิดใช้งานการดึง RX อย่างแน่นอน

6. การเชื่อมต่อ "ฮอต" กับสายสื่อสาร

เท่าที่ฉันรู้ ข้อมูลจำเพาะของ RS-485 ไม่ได้ระบุไว้สำหรับการเสียบปลั๊กแบบ "ร้อน" - การเพิ่มตัวรับส่งสัญญาณใหม่เข้ากับสายสื่อสารในขณะที่ระบบกำลังทำงาน อย่างไรก็ตามระบบสามารถทนต่อการดำเนินการดังกล่าวได้เกือบจะไม่ลำบากหากคุณคำนึงถึงความแตกต่างกันเล็กน้อย นี่เป็นสิ่งสำคัญเมื่อมีการจ่ายไฟให้กับอุปกรณ์ในขณะที่เชื่อมต่อ เช่น เมื่อเสียบบอร์ดแบบคาสเซ็ตต์เข้ากับขั้วต่อ ความจริงก็คือในระหว่างการรีเซ็ตใด ๆ: เมื่อเปิดเครื่องเมื่อสัญญาณที่อินพุต "รีเซ็ต" เมื่อตัวจับเวลาสุนัขเฝ้าบ้านถูกทริกเกอร์ตัวควบคุมต้องใช้เวลาในการเริ่มต้นซึ่งอาจนานถึงหลายสิบมิลลิวินาที ในขณะที่คอนโทรลเลอร์อยู่ในสถานะรีเซ็ต จะบังคับให้พอร์ตทั้งหมดถูกป้อน ซึ่งส่งผลให้เกิดสถานการณ์ที่มีการจ่ายไฟให้กับชิปตัวรับส่งสัญญาณ RS-485 แล้ว แต่อินพุตที่เปิดใช้งานของตัวรับ /RE และ DE ตัวส่งสัญญาณนั้น "ค้างอยู่ในอากาศ" เป็นผลให้ตัวรับส่งสัญญาณสามารถเปิดสำหรับการส่งสัญญาณเนื่องจากการรบกวน และปล่อยขยะเข้าสู่สายการทำงานตลอดเวลาในขณะที่ไมโครคอนโทรลเลอร์ปิดอยู่ หลีกเลี่ยงสิ่งนี้ได้ง่าย เพียงใช้ตัวต้านทานหลายกิโลโอห์มเพื่อดึงอินพุตความละเอียดของตัวรับ /RE ให้เป็นศูนย์ เพื่อให้แน่ใจว่าตัวรับส่งสัญญาณได้รับการกำหนดค่าให้รับทันทีเมื่อเปิดเครื่อง และไม่รบกวนสาย


7. ข้อเสนอแนะในการจัดระเบียบโปรโตคอลการสื่อสาร

ในระดับกายภาพ สายสื่อสารพร้อมสำหรับการใช้งาน อย่างไรก็ตาม จำเป็นต้องมีโปรโตคอลด้วย - ข้อตกลงระหว่างอุปกรณ์ระบบในรูปแบบของพัสดุ

เนื่องจากลักษณะของอินเทอร์เฟซ RS-485 อุปกรณ์จึงไม่สามารถส่งพร้อมกันได้ - จะมีข้อขัดแย้งระหว่างเครื่องส่งสัญญาณ ดังนั้นจึงจำเป็นต้องกระจายสิทธิ์ในการส่งสัญญาณระหว่างอุปกรณ์ต่างๆ ดังนั้นแผนกหลัก: การแลกเปลี่ยนแบบรวมศูนย์ (ต้นแบบเดียว) และการกระจายอำนาจ (หลายต้นแบบ)

ในเครือข่ายแบบรวมศูนย์ อุปกรณ์หนึ่งตัวจะเป็นอุปกรณ์หลัก (หลัก) เสมอ มันสร้างคำขอและคำสั่งไปยังอุปกรณ์ (ทาส) อื่น ๆ อุปกรณ์สเลฟสามารถส่งสัญญาณได้เมื่อได้รับคำสั่งจากมาสเตอร์เท่านั้น ตามกฎแล้วการแลกเปลี่ยนระหว่างทาสเกิดขึ้นผ่านมาสเตอร์เท่านั้น แม้ว่าเพื่อเพิ่มความเร็วในการแลกเปลี่ยน แต่ก็เป็นไปได้ที่จะจัดระเบียบการถ่ายโอนข้อมูลจากทาสหนึ่งไปยังอีกทาสหนึ่งตามคำสั่งของมาสเตอร์

ในเครือข่ายแบบกระจายอำนาจ บทบาทของผู้นำสามารถถ่ายโอนจากอุปกรณ์หนึ่งไปอีกอุปกรณ์หนึ่งโดยอัลกอริธึมการจัดคิวบางประเภท หรือโดยคำสั่งจากผู้นำปัจจุบันไปยังอุปกรณ์ถัดไป (ผ่านโทเค็นผู้นำ) ในกรณีนี้ อุปกรณ์ทาสสามารถส่งคำขอเพื่อเปลี่ยนไปใช้โหมดต้นแบบและรอการอนุญาตหรือการห้ามได้ เพื่อตอบสนองต่ออุปกรณ์หลัก

ช่องสัญญาณอนุกรมตามมาตรฐานของคอนโทรลเลอร์นั้นช้า ที่ความเร็ว 9600 บอด จะใช้เวลามากกว่าหนึ่งมิลลิวินาทีในการส่งอักขระหนึ่งตัว ดังนั้นเมื่อคอนโทรลเลอร์โหลดการคำนวณจำนวนมากและไม่ควรหยุดการคำนวณระหว่างการแลกเปลี่ยนผ่าน UART คุณจะต้องใช้การขัดจังหวะเมื่อการรับและส่งสัญญาณอักขระเสร็จสิ้น คุณสามารถจัดสรรพื้นที่ในหน่วยความจำสำหรับสร้างข้อความส่งและจัดเก็บข้อความที่ได้รับ (บัฟเฟอร์การส่ง) รวมถึงตัวชี้ไปยังตำแหน่งของอักขระปัจจุบัน การขัดจังหวะเมื่อการรับหรือส่งอักขระเสร็จสิ้นจะเรียกรูทีนย่อยที่เกี่ยวข้อง ซึ่งส่งหรือจัดเก็บอักขระถัดไปด้วยการเลื่อนตัวชี้และตรวจสอบจุดสิ้นสุดของเครื่องหมายข้อความ หลังจากนั้นจะส่งคืนการควบคุมไปยังโปรแกรมหลักจนกระทั่งขัดจังหวะครั้งถัดไป เมื่อเสร็จสิ้นการส่งหรือรับแพ็กเกจทั้งหมด แฟล็กผู้ใช้จะถูกสร้างขึ้น ประมวลผลในลูปโปรแกรมหลัก หรือรูทีนย่อยการประมวลผลข้อความจะถูกเรียกทันที

ในกรณีทั่วไป ข้อความที่ส่งผ่านช่องทางอนุกรมประกอบด้วยไบต์ควบคุม (การซิงโครไนซ์ข้อความ ที่อยู่ของผู้ส่งและผู้รับ ผลรวมตรวจสอบ ฯลฯ) และไบต์ข้อมูลจริง

มีโปรโตคอลมากมายและคุณสามารถสร้างได้มากกว่านี้ แต่ควรใช้โปรโตคอลที่ใช้บ่อยที่สุดจะดีกว่า หนึ่งในโปรโตคอลการสื่อสารแบบอนุกรมมาตรฐานคือ MODBUS และได้รับการสนับสนุนจากผู้ผลิตตัวควบคุมทางอุตสาหกรรมหลายราย แต่ถ้าคุณต้องการ "ส่งสองไบต์" อย่างแท้จริงหรือเพียงแค่ใช้วิธีการสื่อสารหลักและไม่ต้องการศึกษาระบบคำสั่ง modbas และเขียนไดรเวอร์สำหรับมันด้วยเหตุนี้ ฉันจึงเสนอตัวเลือกสำหรับโปรโตคอลที่ค่อนข้างง่าย (แต่ในอนาคตมันก็คุ้มค่าที่จะมุ่งเน้นไปที่ MODBUS)

ภารกิจหลักในการจัดระเบียบโปรโตคอลคือการบังคับให้อุปกรณ์ทั้งหมดแยกความแตกต่างระหว่างไบต์ควบคุมและไบต์ข้อมูล ตัวอย่างเช่น อุปกรณ์ทาสที่ได้รับกระแสไบต์ผ่านบรรทัด จะต้องเข้าใจว่าข้อความเริ่มต้นที่ใด จุดสิ้นสุดอยู่ที่ไหน และถูกส่งไปยังใคร

1). มักพบโปรโตคอลที่ใช้รหัส ASCII อักขระควบคุมและข้อมูลจะถูกส่งเป็นอักขระ ASCII ธรรมดา แพ็คเกจอาจมีลักษณะดังนี้:

ในรูปแบบ HEX: 3Ah 31h 32h 52h 53h 34h 38h 35h 0Dh ในรูปแบบ ASCII: ซิลิโคน "1" "2" "R" "S" "4" "8" "5" /PS/

ที่จุดเริ่มต้น อักขระควบคุมสำหรับการเริ่มต้นการส่งคือ /// ตัวเลขสองหลักถัดไปคือที่อยู่ของผู้รับ (12) ตามด้วยอักขระข้อมูล (RS485) และส่วนท้าย - อักขระควบคุมสำหรับส่วนท้ายของ กำลังส่ง 0Dh (ฟีดบรรทัด) อุปกรณ์ทั้งหมดในบรรทัดที่ได้รับสัญลักษณ์ /// ให้เริ่มเขียนข้อความลงในหน่วยความจำจนถึงอักขระท้ายบรรทัด 0Dh จากนั้นพวกเขาจะเปรียบเทียบที่อยู่จากแพ็คเกจกับที่อยู่ของพวกเขา อุปกรณ์ที่มีที่อยู่ตรงกันจะประมวลผลข้อมูลพัสดุ ส่วนที่เหลือจะไม่สนใจพัสดุ ข้อมูลสามารถมีอักขระใดๆ ก็ได้ ยกเว้นอักขระควบคุม (///, 0Dh)

ข้อดีของโปรโตคอลนี้คือความสะดวกในการดีบักระบบและความสะดวกในการซิงโครไนซ์ข้อความ คุณสามารถเชื่อมต่อสายเข้ากับพอร์ต COM ของคอมพิวเตอร์ของคุณผ่านตัวแปลง RS485-RS232 และดูข้อมูลที่ส่งผ่านทั้งหมด "ในภาษามนุษย์" ในเทอร์มินัลใดก็ได้ ข้อเสีย - ขนาดพัสดุที่ค่อนข้างใหญ่เมื่อส่งข้อมูลไบนารีจำนวนมากเนื่องจากต้องใช้อักขระ ASCII สองตัวในการส่งแต่ละไบต์ (7Fh - "7", "F") นอกจากนี้จำเป็นต้องแปลงข้อมูลจากไบนารีเป็น ASCII และในทางกลับกัน

2). เป็นไปได้ที่จะจัดระเบียบโปรโตคอลด้วยการส่งข้อมูลไบนารีโดยตรง ในกรณีนี้ อักขระควบคุมและไบต์ข้อมูลจะแตกต่างกันโดยการตั้งค่าบิตที่เก้าเพิ่มเติมใน UART สำหรับอักขระควบคุม บิตนี้จะถูกตั้งค่าเป็น "1" อักขระควบคุมตัวแรกที่มีบิตที่เก้าเพียงตัวเดียวจะถูกส่งไปในพัสดุ - บิต "ปกติ" ที่เหลืออาจมีที่อยู่ของอุปกรณ์ผู้รับ สัญลักษณ์ของจุดเริ่มต้น/จุดสิ้นสุดของพัสดุ และอื่นๆ ไบต์ข้อมูลจะถูกส่งด้วยบิตที่เก้าเป็นศูนย์ อุปกรณ์รับสัญญาณทั้งหมดจะจดจำอักขระควบคุมด้วยบิตที่เก้า และกำหนดว่าข้อมูลถัดไปจะถูกส่งไปยังใครโดยเนื้อหาของบิตที่เหลือ อุปกรณ์ที่ได้รับแอดเดรสจะยอมรับข้อมูล ส่วนอุปกรณ์อื่นๆ ทั้งหมดจะไม่สนใจจนกว่าจะมีอักขระควบคุมตัวถัดไป

UART ของคอนโทรลเลอร์บางตัว เช่น C167 (Infineon) สามารถรับรู้บิตที่เก้าในไบต์ที่ได้รับโดยอัตโนมัติในโหมดพิเศษ (การปลุก) และสร้างการขัดจังหวะเมื่อได้รับเฉพาะอักขระควบคุมเท่านั้น ในกรณีนี้ อุปกรณ์ที่ได้รับจะต้องสลับไปที่โหมดการรับสัญญาณปกติจนกว่าจะมีอักขระควบคุมตัวถัดไป ซึ่งช่วยให้อุปกรณ์อื่นๆ ประหยัดเวลาในการประมวลผลขัดจังหวะเมื่อรับไบต์ข้อมูลที่ไม่ได้ส่งถึงอุปกรณ์เหล่านั้น

หากคุณต้องการจับคู่ระบบและคอมพิวเตอร์กับ Windows จะเป็นการดีกว่าที่จะไม่ใช้โปรโตคอลนี้เนื่องจาก Windows อาจมีปัญหาในการจดจำบิตที่เก้าใน UART

3) โปรโตคอลสามารถเป็นไบนารี่ "ล้วนๆ" ได้ กล่าวคือ โดยไม่มีอักขระควบคุมพิเศษ การซิงโครไนซ์พัสดุในกรณีนี้สามารถทำได้โดยการติดตามการหยุดชั่วคราวระหว่างไบต์ที่ได้รับ อุปกรณ์รับจะนับเวลาจากครั้งสุดท้ายที่ได้รับไบต์จนถึงครั้งถัดไป และหากการหยุดชั่วคราวนี้มากกว่าค่าที่กำหนด (เช่น 1.5 - 3.5 ไบต์) จะสรุปว่าข้อความก่อนหน้าหายไป และอันใหม่ได้เริ่มต้นขึ้นแล้ว แม้ว่าการส่งก่อนหน้านี้จะยังไม่เสร็จสิ้น บัฟเฟอร์การรับจะถูกรีเซ็ต คุณยังสามารถซิงโครไนซ์การส่งโดยใช้ลำดับไบต์เริ่มต้นที่ไม่ซ้ำกัน (คล้ายกับอักขระเริ่มต้นในโปรโตคอล ASCII) ในโปรโตคอลดังกล่าว ต้องใช้มาตรการพิเศษเพื่อป้องกันการรับข้อความเท็จที่เริ่มต้นเนื่องจากการรบกวน

8. วิธีซอฟต์แวร์เพื่อจัดการกับความล้มเหลว

เพื่อเพิ่มความน่าเชื่อถือในการสื่อสาร จำเป็นต้องจัดเตรียมวิธีการของซอฟต์แวร์เพื่อจัดการกับความล้มเหลว สามารถแบ่งออกเป็นสองกลุ่ม: การป้องกันการดีซิงโครไนซ์และการควบคุมความน่าเชื่อถือ

1). การป้องกันการดีซิงโครไนซ์แม้จะมีอคติในการป้องกัน การรบกวนที่รุนแรงสามารถทะลุผ่านสายได้โดยไม่ต้องมีตัวส่งสัญญาณที่ทำงานอยู่ และขัดขวางลำดับการรับข้อความที่ถูกต้อง จากนั้นจึงจำเป็นต้องทำให้อุปกรณ์รับเข้าใจด้วยข้อความปกติแรก และป้องกันไม่ให้เกิดข้อผิดพลาดในการรบกวนข้อความ ทำได้โดยใช้การซิงโครไนซ์เฟรม (หยุดชั่วคราว) และส่งการซิงโครไนซ์ (คำนำ)

การป้องกันการซิงโครไนซ์เฟรม มาตรการบังคับ! มาตรการที่ตามมาทั้งหมดสำหรับการซิงโครไนซ์พัสดุนั้นสมเหตุสมผลเมื่อใช้ร่วมกับมาตรการนี้เท่านั้นการรบกวนด้วยบิตเริ่มต้นที่ผิดพลาดสามารถรบกวนการรับเฟรมที่ตามมาได้อย่างถูกต้อง หากต้องการกลับไปยังลำดับที่ถูกต้อง คุณต้องหยุดชั่วคราวระหว่างการเปิดเครื่องรับส่งสัญญาณเพื่อส่งและส่งข้อมูล ตลอดเวลานี้ เครื่องส่งสัญญาณจะรักษาระดับสูงในสาย ซึ่งเป็นเรื่องยากที่สัญญาณรบกวนจะทะลุผ่านได้ (หยุดชั่วคราว) การหยุดชั่วคราว 1 เฟรมที่ความเร็วการสื่อสารที่กำหนด (10-11 บิต) จะเพียงพอสำหรับอุปกรณ์ใด ๆ ที่ได้รับการรบกวนเพื่อรับบิตหยุด จากนั้นเฟรมถัดไปจะได้รับจากบิตเริ่มต้นปกติ


เอฟเฟกต์เดียวกันนี้สามารถทำได้โดยการส่งสัญลักษณ์ FFh ก่อนไบต์แรกของพัสดุ เนื่องจากบิตทั้งหมดจะเป็น "1" ยกเว้นบิตเริ่มต้น (หากบิตเริ่มต้นของสัญลักษณ์ FFh ตกบนบิตหยุดของเฟรมเท็จ ข้อผิดพลาดของเฟรมจะถูกนับอย่างง่ายดาย)

การป้องกันการซิงโครไนซ์พัสดุ ใช้ร่วมกับการป้องกันแบบเดิม!การรบกวนแบบลับๆ ล่อๆ เป็นพิเศษอาจปลอมแปลงเป็นอักขระควบคุมและรบกวนข้อความที่ได้รับในภายหลัง นอกจากนี้การส่งครั้งก่อนอาจถูกขัดจังหวะ ด้วยเหตุนี้ จึงเป็นที่ต้องการอย่างมากที่จะจัดให้มีการวัดในรูทีนย่อยการรับและการบันทึกข้อมูลเพื่อจดจำจุดเริ่มต้นที่แท้จริงของการส่งและรีเซ็ตบัฟเฟอร์การส่งการรับ (พื้นที่หน่วยความจำที่ไบต์ที่ได้รับถูกบันทึก) เพื่อจุดประสงค์นี้ มีการใช้คำนำซึ่งเป็นสัญญาณเบื้องต้นของจุดเริ่มต้นของพัสดุ

สัญลักษณ์เริ่มต้นในโปรโตคอล ASCII บทบาทของคำนำจะเล่นโดยอักขระควบคุมพิเศษที่จุดเริ่มต้นของการส่ง สำหรับการรับอักขระดังกล่าวแต่ละครั้ง คุณจะต้องรีเซ็ตบัฟเฟอร์: รีเซ็ตจำนวนไบต์ที่ได้รับ เลื่อนตัวชี้ไปที่จุดเริ่มต้นของบัฟเฟอร์ ฯลฯ ต้องทำเช่นเดียวกันเมื่อบัฟเฟอร์ล้น ซึ่งจะทำให้สัญลักษณ์ควบคุมจริงสามารถรีเซ็ต "ส่ง" ก่อนหน้าที่เริ่มต้นโดยสัญลักษณ์เท็จได้

ตัวอย่าง. อักขระควบคุมตัวสุดท้าย uma จะรีเซ็ตข้อความเท็จก่อนหน้านี้:

____ :) ____ : 1 2 อาร์ เอส 4 8 5 /PS/ ____

เริ่มหยุดชั่วคราวในโปรโตคอลไบนารี่ซึ่งไม่ได้จัดเตรียมอักขระควบคุมเฉพาะไว้และการซิงโครไนซ์พัสดุเกิดขึ้นตามการหยุดชั่วคราวระหว่างไบต์ที่กำหนด ก็เพียงพอที่จะเพิ่มการหยุดชั่วคราวที่ใช้งานอยู่ซึ่งอธิบายไว้ในการซิงโครไนซ์เฟรมตามระยะเวลาของการหยุดชั่วคราวระหว่างไบต์ ซึ่ง การรับพัสดุใหม่เริ่มต้นขึ้น นั่นคือระหว่างการเปิดเครื่องรับส่งสัญญาณเพื่อส่งสัญญาณและการส่งไบต์แรกของแพ็คเกจคุณต้องหยุดเฟรม UART 1.5 - 3.5 ชั่วคราว หากเครื่องส่งทำงานในระหว่างการเริ่มนำ การรบกวนจะทะลุไปยังเครื่องรับได้ยาก โดยจะบันทึกการหยุดชั่วคราวที่จำเป็น รีเซ็ตบัฟเฟอร์การส่ง และปรับเพื่อรับการส่งใหม่ วิธีการนี้ใช้เฉพาะกับโปรโตคอล MODBUS RTU

ลำดับการเริ่มต้น.หากในการซิงโครไนซ์โปรโตคอลไบนารี่ดำเนินการโดยการเริ่มต้นข้อความที่ถูกต้องเท่านั้น ข้อความเท็จจะถูกกรองโดยลอจิกของโครงสร้างเท่านั้น คำนำในกรณีนี้คือลำดับเริ่มต้นของสัญลักษณ์ที่ไม่สามารถพบได้ในข้อมูลที่ส่ง และไม่น่าจะเกิดจากการรบกวน คำนำจะถูกส่งก่อนข้อความหลัก อุปกรณ์รับสัญญาณจะติดตามลำดับการเริ่มต้นนี้ในข้อมูลที่เข้ามา ไม่ว่าจะเกิดขึ้นที่ใดก็ตาม อุปกรณ์รับจะรีเซ็ตบัฟเฟอร์การส่งและเริ่มรับบัฟเฟอร์ใหม่

ตัวเลือกที่ 1 พัสดุเริ่มได้รับอีกครั้งหลังจากได้รับ "ไป!" (แทนที่จะเป็นอักขระสามารถมีข้อมูล 8 บิตได้):

____: - ข ___ กโอ! 1 2 อาร์ ส 4 8 5 ____

ตัวเลือกที่ 2 พัสดุเริ่มได้รับการยอมรับอีกครั้งหลังจากการยอมรับ ไม่น้อย"E" สามตัวติดกันและไบต์เริ่มต้น /// (แทนที่จะเป็นอักขระสามารถมีข้อมูล 8 บิตได้):

____ > : - อี ___ อีอีอี: 1 2 อาร์ ส 4 8 5 ____

แม้ว่าจะมีสัญลักษณ์ดังกล่าวสองอันติดกันก่อนลำดับเริ่มต้น พัสดุจะเริ่มถูกบันทึกหลังจากลำดับอย่างน้อยสามสัญลักษณ์ในแถวเท่านั้น (อันพิเศษจะถูกละเว้น) และสัญลักษณ์เริ่มต้น หากคุณใช้ไบต์ FFh แทน "E" คุณสามารถรวมการซิงโครไนซ์เฟรมและเฟรมเข้าด้วยกันได้ เมื่อต้องการทำเช่นนี้ FFh สี่จะถูกส่ง และอุปกรณ์รับคาดว่าจะมีอย่างน้อยสาม โดยคำนึงถึงข้อเท็จจริงที่ว่าไบต์แรกของ FFh อาจถูกใช้ไปกับการซิงโครไนซ์เฟรม

2). การควบคุมความน่าเชื่อถือการรบกวนที่รุนแรงเป็นพิเศษสามารถแทรกตัวเองเข้าไปในแพ็คเกจ บิดเบือนอักขระควบคุมหรือข้อมูลในนั้น หรือแม้แต่ทำลายมันทั้งหมด นอกจากนี้ อุปกรณ์ตัวใดตัวหนึ่งที่เชื่อมต่อกับสาย (สมาชิก) อาจล้มเหลวและหยุดตอบสนองต่อคำขอ ในกรณีเกิดภัยพิบัติดังกล่าว จะมีการเช็คซัม การหมดเวลา และการจับมือกัน

ตรวจสอบจำนวนเงิน- โดยทั่วไปโค้ด 1-2 ไบต์ที่ได้รับจากการแปลงข้อมูลจากข้อมูลที่ส่ง สิ่งที่ง่ายที่สุดคือการ "ผูกขาดหรือ" ข้อมูลไบต์ทั้งหมด เช็คซัมได้รับการคำนวณและรวมอยู่ในบรรจุภัณฑ์ก่อนจัดส่ง อุปกรณ์รับจะดำเนินการเดียวกันกับข้อมูลที่ได้รับ และเปรียบเทียบผลรวมที่คำนวณได้กับข้อมูลที่ได้รับ หากบรรจุภัณฑ์เสียหายก็มีแนวโน้มว่าจะไม่ตรงกัน หากใช้โปรโตคอล ASCII รหัสตรวจสอบจะถูกส่งเป็นอักขระ ASCII ด้วย

หมดเวลา- เวลารอสูงสุดสำหรับการตอบกลับจากอุปกรณ์ที่ร้องขอ หากแพ็คเกจเสียหายหรืออุปกรณ์ที่ร้องขอล้มเหลว อุปกรณ์หลักจะไม่รอการตอบกลับ แต่หลังจากช่วงระยะเวลาหนึ่งจะรับทราบถึงความล้มเหลว หลังจากนั้นคุณสามารถทำซ้ำคำขออีกสองสามครั้ง และหากความล้มเหลวเกิดขึ้นอีก ให้ดำเนินการจัดการกับสถานการณ์ฉุกเฉินต่อไป การหมดเวลาจะนับจากช่วงเวลาที่คำขอเสร็จสมบูรณ์ ระยะเวลาควรเกินเวลาส่งการตอบสนองสูงสุดเล็กน้อย บวกกับเวลาที่ต้องใช้ในการประมวลผลคำขอและสร้างการตอบกลับ อุปกรณ์ทาสยังสามารถใช้การหมดเวลาได้ โดยเฉพาะอย่างยิ่งในสถานการณ์ที่การขาดการอัปเดตข้อมูลเป็นประจำหรือคำสั่งใหม่จากอุปกรณ์หลักมีความสำคัญต่อการทำงานของอุปกรณ์ระบบ การใช้งานที่ง่ายที่สุดสำหรับทาสคือการรีเซ็ตตัวจับเวลาจ้องจับผิดเมื่อได้รับพัสดุ หากข้อมูลหยุดไหลไม่ว่าด้วยเหตุผลใดก็ตาม อุปกรณ์จะรีเซ็ตเมื่อตัวจับเวลาเฝ้าระวังล้น หลังจากรีเซ็ตแล้ว เซฟโหมดจะถูกสร้างขึ้นจนกว่าจะได้รับคำสั่งแรก

จับมือ- การยืนยันการส่งมอบ (ใบเสร็จรับเงิน) เมื่อเป็นสิ่งสำคัญที่สเลฟจะต้องได้รับข้อมูลหรือคำสั่งอย่างแน่นอน ก็จำเป็นต้องตรวจสอบการรับแพ็คเกจของเขา อุปกรณ์หลักที่ส่งข้อมูลไปยังทาสจะรอการตอบสนองพร้อมการยืนยัน อุปกรณ์ทาสเมื่อได้รับข้อมูลแล้ว หากถูกต้อง จะส่งการตอบกลับเพื่อยืนยันการจัดส่ง หากอุปกรณ์หลักไม่ได้รับการตอบรับหลังจากหมดเวลา จะถือว่ามีความล้มเหลวในการสื่อสารหรือในอุปกรณ์สเลฟ จากนั้นให้ทำตามขั้นตอนปกติ - ทำซ้ำข้อความ แต่มีความแตกต่างกันเล็กน้อย: ใบเสร็จรับเงินเองอาจเสียหายและไม่ได้รับ อุปกรณ์หลักโดยไม่ได้รับใบเสร็จ ให้ส่งซ้ำ และสเลฟจะประมวลผลอีกครั้ง สิ่งนี้ไม่สำคัญเสมอไป แต่หากมีการส่งคำสั่งเช่น "เพิ่มพารามิเตอร์ 1" อาจทำให้พารามิเตอร์เพิ่มขึ้นสองเท่าโดยไม่ได้วางแผนไว้ ในกรณีนี้ จำเป็นต้องจัดเตรียมบางอย่าง เช่น การกำหนดหมายเลขพัสดุแบบวนรอบ เพื่อให้อุปกรณ์ทาสแยกแยะพัสดุที่ซ้ำจากพัสดุใหม่ และไม่ประมวลผลพัสดุเหล่านั้น

9. การป้องกันอุปกรณ์จากแรงดันไฟฟ้าเกินในสายสื่อสาร

ความต่างศักย์ระหว่างตัวนำสายและระหว่างสายกับกราวด์ของตัวรับส่งสัญญาณตามกฎไม่ควรเกิน -7 ... +12 V ดังนั้นการป้องกันความแตกต่างที่อาจเกิดขึ้นระหว่างกราวด์และต่อแรงดันไฟฟ้าเกินเนื่องจากการลัดวงจร อาจจำเป็นต้องต่อวงจรไฟฟ้าแรงสูง

ความแตกต่างที่อาจเกิดขึ้นระหว่าง "บริเวณ"เมื่อจัดเครือข่ายตามอินเทอร์เฟซ RS-485 เราควรคำนึงถึงการมีอยู่ของตัวนำที่สามโดยปริยาย - กราวด์ ท้ายที่สุดแล้วตัวรับส่งสัญญาณทั้งหมดมีกำลังและกราวด์ หากอุปกรณ์ตั้งอยู่ใกล้กับแหล่งพลังงานเริ่มแรกความแตกต่างที่อาจเกิดขึ้นระหว่าง "กราวด์" ของอุปกรณ์ในเครือข่ายจะมีน้อย แต่หากอุปกรณ์อยู่ห่างจากกันและรับพลังงานในพื้นที่ก็อาจมีความแตกต่างที่สำคัญระหว่าง "กราวด์" ของอุปกรณ์เหล่านั้น ผลที่ตามมาที่เป็นไปได้คือความล้มเหลวของตัวรับส่งสัญญาณหรือแม้แต่อุปกรณ์ทั้งหมด ในกรณีเช่นนี้ ควรใช้ระบบแยกไฟฟ้าหรือลวดเดรน

การแยกสายไฟและอุปกรณ์แบบกัลวานิกทำได้โดยการแยกสัญญาณดิจิตอลแบบออปติคอล (RO, DI, RE, DE) โดยมีการจัดแหล่งจ่ายไฟแบบแยกไปยังชิปตัวรับส่งสัญญาณหรือโดยการใช้ตัวรับส่งสัญญาณที่มีการแยกสัญญาณไฟฟ้าในตัวและ พลังงาน (เช่น MAX1480) จากนั้นร่วมกับตัวนำที่แตกต่างกันจะมีการวางสายกราวด์ที่หุ้มฉนวน (กราวด์สัญญาณ) และอาจวางสายไฟที่หุ้มฉนวนไว้

ลวดเดรนเป็นลวดที่วางคู่กับสายคู่บิดเกลียวและเชื่อมต่อกับ “กราวด์” ของอุปกรณ์ระยะไกล ด้วยเส้นลวดนี้ ศักยภาพของ "บริเวณ" จะถูกทำให้เท่ากัน เมื่อต่ออุปกรณ์เข้ากับสายแล้วควรต่อสายเดรนก่อน และเมื่อถอดออก ก็ควรถอดเป็นลำดับสุดท้าย หากต้องการจำกัดกระแสไฟผ่านสายเดรน อุปกรณ์แต่ละเครื่องจะต่อสายดินผ่านตัวต้านทาน 100 โอห์ม (0.5 W)


ลัดวงจรไปจนถึงวงจรไฟฟ้าแรงสูงหากมีอันตรายจากไฟฟ้าแรงสูงเข้ามาในสายไฟหรือบริเวณใดบริเวณหนึ่ง ควรใช้ตัวแยกออปโตหรือตัวจำกัดแรงดันไฟสับเปลี่ยน หรือดีกว่าทั้งสองอย่าง

แรงดันพังทลายของอินเทอร์เฟซออปโตแยกคือโวลต์นับร้อยหรือหลายพันโวลต์ สิ่งนี้จะช่วยปกป้องอุปกรณ์อย่างดีจากแรงดันไฟฟ้าเกินที่ใช้กับตัวนำไฟฟ้าทุกสาย อย่างไรก็ตาม ด้วยแรงดันไฟฟ้าเกินส่วนต่าง เมื่อมีศักยภาพสูงปรากฏบนตัวนำตัวใดตัวหนึ่ง ตัวรับส่งสัญญาณเองก็จะได้รับความเสียหาย

เพื่อป้องกันแรงดันไฟฟ้าเกินส่วนต่าง ตัวนำไฟฟ้าทุกเส้น รวมถึงตัวนำร่วมที่แยกเดี่ยว จะถูกต่อไปยังกราวด์เฉพาะที่โดยใช้เครื่องจำกัดแรงดันไฟฟ้า สิ่งเหล่านี้อาจเป็นวาริสเตอร์, ตัวจำกัดแรงดันไฟฟ้าของเซมิคอนดักเตอร์และท่อระบายก๊าซ หลักการทางกายภาพของการทำงานนั้นแตกต่างกัน แต่สาระสำคัญก็เหมือนกัน - ที่แรงดันไฟฟ้าที่สูงกว่าเกณฑ์ความต้านทานจะลดลงอย่างรวดเร็วและพวกมันจะข้ามเส้น ท่อจ่ายแก๊สสามารถแบ่งกระแสไฟฟ้าที่สูงมากได้ แต่มีขีดจำกัดการแยกย่อยที่สูงและความเร็วต่ำ ดังนั้นจึงควรใช้ในวงจรสามขั้นตอนร่วมกับตัวจำกัดเซมิคอนดักเตอร์ เมื่อไม่สามารถต่อสายดินได้ ตัวนำสายจะถูกต่อด้วยตัวจำกัดระหว่างกัน แต่สิ่งนี้จะป้องกันเฉพาะแรงดันไฟฟ้าเกินส่วนต่าง - ออปโตคัปเปลอร์ควรเข้าควบคุมการป้องกันจากแรงดันไฟฟ้าเกินทั่วไป


การป้องกันด้วยตัวจำกัดแรงดันไฟฟ้ามีประสิทธิผลสำหรับแรงดันไฟฟ้าเกินในระยะสั้น ในกรณีที่กระแสไฟฟ้าลัดวงจรในระยะยาว ลิมิตเตอร์อาจได้รับความเสียหาย และอุปกรณ์ในสายจะถูกทิ้งไว้โดยไม่มีการป้องกัน เพื่อป้องกันการลัดวงจร สามารถต่อฟิวส์แบบอนุกรมกับสายได้ ข้อมูลเพิ่มเติมเกี่ยวกับการป้องกันไฟกระชากมีอยู่ในคู่มือ B&B Electronics "หมายเหตุการใช้งาน RS-422 และ RS-485"

10. มาตรการป้องกันการรบกวนเพิ่มเติม

การวินิจฉัยหากสามารถเลือกเส้นทางการวางสายเคเบิลพร้อมการวัดระดับเสียงได้ก็อย่าละเลย แม้ว่าการแก้ไขข้อผิดพลาดของซอฟต์แวร์จะสามารถรับมือกับความล้มเหลวได้สำเร็จ แต่จะต้องทำทุกอย่างเพื่อลดระดับเสียงรบกวนในสาย มีประโยชน์ในการจัดให้มีโหมดการวินิจฉัยในโปรแกรม โดยจะมีการสะสมสถิติความล้มเหลวที่ประมวลผลโดยการแก้ไขซอฟต์แวร์ (ความล้มเหลวตามผลรวมหรือหมดเวลา) หากมีความล้มเหลวมากเกินไป ขอแนะนำให้ค้นหาและกำจัดสาเหตุที่เกิดขึ้น การลดความเร็วในการสื่อสาร (อัตรารับส่งข้อมูล) ในหลายกรณีจะช่วยเพิ่มการป้องกันเสียงรบกวน ไม่สมเหตุสมผลเลยที่จะตั้งค่าอัตรารับส่งข้อมูลให้สูงเกินความจำเป็นสำหรับการทำงานปกติของระบบ เว้นแต่ว่าจะมีช่องว่างให้แก้ไขได้

การเดินสายหากเป็นไปได้ คุณไม่ควรต่อสายคู่บิดเกลียวไปตามสายไฟ โดยเฉพาะอย่างยิ่งในการถักเปียทั่วไป เนื่องจากมีอันตรายจากการรบกวนจากกระแสไฟผ่านการเหนี่ยวนำซึ่งกันและกัน อุปกรณ์ไฟฟ้าที่เปลี่ยนกระแสสูงก็เป็นแหล่งสัญญาณรบกวนเช่นกัน เป็นการดีกว่าที่จะไม่ใช้วงจรกำลังสัญญาณของสายแยกออปโตเพื่อจ่ายไฟให้กับสิ่งอื่นใด เนื่องจากกระแสส่วนเกินที่ไหลผ่านกราวด์สัญญาณอาจทำให้เกิดสัญญาณรบกวนเพิ่มเติมในสายได้ คู่บิดคุณภาพต่ำที่มีลักษณะตัวนำไม่สมมาตรเป็นอีกปัญหาหนึ่ง ยิ่งระยะห่างของสายคู่ตีเกลียวเล็กลง (ยิ่งสายบิดบ่อยมากขึ้น) ก็ยิ่งดีเท่านั้น แม้ว่าจะไม่ได้ใช้สายแยกออปโตหรือการระบายน้ำ แต่ก็คุ้มค่าที่จะติดตั้งสายเคเบิลที่มีคู่บิดสำรองทันที - ในกรณีที่สายแรกขาดหรือคุณยังต้องติดตั้งกราวด์สัญญาณ

ตัวกรองอุปนัยหากการรบกวนความถี่สูงเข้าไปในสาย ก็สามารถกรองออกได้ด้วยตัวกรองแบบเหนี่ยวนำ มีตัวกรองอุปนัยพิเศษที่ออกแบบมาเพื่อลดสัญญาณรบกวนความถี่สูงในสายสื่อสาร เชื่อมต่อแบบอนุกรมกับเครื่องรับโดยตรง ตัวอย่างเช่น B82790-S**** จาก Epcos สร้างขึ้นในรูปแบบของเครือข่ายสี่เทอร์มินัลซึ่งมีการเชื่อมต่อคู่บิดเข้ากับเครื่องรับ


ฉันไม่ได้แสร้งทำเป็นว่ามีข้อมูลที่ครบถ้วนเกี่ยวกับความซับซ้อนทางกายภาพและซอฟต์แวร์ของการสื่อสารผ่านอินเทอร์เฟซ RS-485 อย่างไรก็ตาม ฉันเชื่อว่าการนำเสนอหัวข้ออื่นมีการกำหนดรูปแบบที่แตกต่างออกไปเล็กน้อยและยังเสริมอีกด้วย ประสบการณ์ส่วนตัวมันจะไม่ฟุ่มเฟือยสำหรับนักพัฒนาที่เพิ่งเริ่มเข้าใจพื้นที่นี้ ฉันหวังว่าข้อมูลที่ให้ไว้จะช่วยให้คุณจัดระเบียบการสื่อสารที่ปราศจากปัญหาและเชื่อถือได้

มาดูวิธีการควบคุมตัวแปลงความถี่โดยใช้โปรโตคอล rs 485 มาทำให้การควบคุมสปินเดิลเป็นแบบอัตโนมัติกัน สำหรับสิ่งนี้ เรามี:

  1. เครื่องกลึงแกนหมุน ET65A-800W.
  2. ตัวแปลงความถี่จาก Schneider Electric Altivar 71
  3. เครื่องมือปรับแต่งอินเตอร์เฟส RS232/RS485 ให้ทันสมัย
  4. Mach3 v.3.042.029.

ขั้นแรกเราทำการกำหนดค่า Mac:

    1. เราอนุญาตให้ทำงานผ่าน ModBus โดยทำเครื่องหมายในช่องที่เหมาะสม
    1. ในการตั้งค่าสปินเดิลในเมนูย่อย ให้ลบเครื่องหมายถูกที่ไม่จำเป็นออก

  1. เพิ่มบรรทัดเริ่มต้นให้กับเมนู conf ทั่วไป
  2. ในการทำงาน คุณต้องมีรีจิสเตอร์สองตัวในตัวแปลงความถี่ - การควบคุม CMD และการตั้งค่าด้วยรีจิสเตอร์ เพื่อให้สะดวกยิ่งขึ้น เราเลือกความเร็วรอบเครื่องยนต์โดยใช้ค่าที่ตั้งไว้

ทำการกำหนดค่าการโพล:

องค์ประกอบการเชื่อมต่อ 19200 8-N-1 กำลังสแกนที่ 10 เฮิรตซ์ในแผนภูมิขนาด จำเป็นต้องมีการโพลเพื่อให้การวินิจฉัยตัวเองเกิดขึ้นในการเชื่อมต่อและความถี่ถูกแปลง หากการรับส่งข้อมูลเครือข่ายหยุดตามระยะเวลาการหยุดที่ระบุ เครื่องกำเนิดความถี่จะสร้างข้อผิดพลาด

การแก้ไขสคริปต์ VBA:

ม3
SetModOutput(0,&H0006)
เซ็ตม็อดเอาท์พุต(1,0)
ดอสปินCW()
SetModOutput(0,&H000F)

ม4
SetModOutput(0,&H0006)
เซ็ตม็อดเอาท์พุต(1,0)
ดอสปินCCW()
SetModOutput(0,&H000F)

SetModOutput(0,&H0006)
SetModOutput(1,&H0000)
ดอสปินสต็อป()

รอบต่อนาที = GetRPM()
ตั้งค่าความเร็วการหมุน(รอบต่อนาที)
SetModOutput(1,รอบต่อนาที)

การแก้ไขโปรเซสเซอร์หลัง:

@start_tool
ถ้า only_xyz eq false
ถ้า tool_direction eq CW แล้ว
รหัสเอ็ม = 4
อื่น ; ทวนเข็มนาฬิกา
รหัสเอ็ม = 3
สิ้นสุด

โทร @gen_nb
- ('S'spin:integer_def_f,'M'mcode)
('เอ็มโค้ด)
โทร @gen_nb
('สปิน:จำนวนเต็ม_def_f)
โทร @gen_nb
('M8')
สิ้นสุด
สิ้นสุด
เราทำงานโดยใช้การผสมผสาน SolidWorks/SolidCAM
วิธีการควบคุมนี้มีข้อดีและแตกต่างจากตัวแปลง PWM:
— หากความเร็วแกนหมุนเป็นศูนย์ แสดงว่ามอเตอร์ปิดอยู่
— โปรแกรมควบคุมมีความสามารถในการแลกเปลี่ยนข้อมูลกับตัวแปลงความถี่
— ความเร็วรอบเครื่องยนต์จริงจะถูกตีความตามคำแนะนำของโปรแกรมควบคุมความถี่
— บนสายสื่อสารระยะไกล มีความสามารถในการปรับตัวที่ดีต่อการรบกวน (สูงสุดหนึ่งกิโลเมตร)

อ่านเพิ่มเติมเกี่ยวกับการควบคุมตัวแปลงความถี่โดยใช้โปรโตคอล RS-485

RS-485 ใช้ชิลด์คู่บิดพร้อมกราวด์และสัญญาณ จำเป็นต้องมีกราวด์สัญญาณ แต่ไม่ได้ใช้ในการคำนวณสถานะของสายในลอจิก สวิตช์ควบคุมสายแบบสมดุลมีสัญญาณอินพุต "เปิดใช้งาน" ที่ใช้ในการควบคุมมอนิเตอร์เอาต์พุตของอุปกรณ์ หากปิดใช้งานสัญญาณ "เปิดใช้งาน" หมายความว่าอุปกรณ์ถูกตัดการเชื่อมต่อจากสาย และในสถานะนี้ อุปกรณ์จะเรียกว่า "ไตรสเตต" เสมอ (เช่น สถานะที่สาม พร้อมด้วยไบนารี 1 และ 0)

ค่ามาตรฐานบน RS-485 มีเพียง 32 คู่ส่งและรับ แต่ผู้ผลิตได้เพิ่มความสามารถของโปรโตคอล RS-485 ดังนั้นตอนนี้จะรองรับอุปกรณ์จาก 128 เป็น 255 ในบรรทัดเดียวคุณสามารถเพิ่มได้เมื่อใช้รีพีทเตอร์ RS-485/RS-422 มากๆ หากคุณสามารถใช้ RS-485 และด้วยสายยาวหรืออุปกรณ์จำนวนมาก คุณจะต้องใช้เทอร์มิเนเตอร์ที่ติดตั้งไว้ในอุปกรณ์ที่มีโปรโตคอล RS-485 แต่ด้วยสายสั้น จะทำให้การสื่อสารเสื่อมลงอย่างเห็นได้ชัดเมื่อใช้งาน เทอร์มิเนเตอร์

นอกจากนี้ ระดับของ RS-485 ยังกำหนดการใช้สายคู่ตีเกลียวแบบสองสายพร้อมตะแกรง เช่น RS-485 แบบ 2 สาย แต่จะใช้สายคู่บิดเกลียวสี่สาย (RS-485 แบบ 4 สาย) ด้วยเช่นกัน แล้วจะมีดับเบิ้ลทั้งหมด ในกรณีนี้ จำเป็นต้องสร้างโครงสร้างหนึ่งให้เป็นผู้นำ (เจ้านาย) และอีกโครงสร้างหนึ่งเป็นทาส (ทาส) จากนั้นโครงสร้างทาสจำนวนมากจะสื่อสารเฉพาะกับโครงสร้างหลักเท่านั้น และจะไม่มีวันให้สิ่งใดๆ แก่กันโดยตรงเลย ในกรณีเหล่านี้ เช่นเคย ไดรเวอร์ RS-422 จะถูกนำมาใช้เป็นโครงสร้างนำเนื่องจาก อนุญาตให้เชื่อมต่อ RS-422 เป็นมาสเตอร์/สเลฟเท่านั้น และ RS-485 ได้รับการออกแบบให้เป็นสเลฟเพื่อลดต้นทุนของระบบ มาตรฐาน RS-422 ตั้งแต่เริ่มต้นกำหนดการใช้สายเคเบิลคู่บิดเกลียวสี่สายพร้อมตัวป้องกัน แต่อนุญาตให้เชื่อมต่อจากการออกแบบหนึ่งไปยังอีกแบบหนึ่งเท่านั้น (ไดรเวอร์สูงสุด 5 ตัวและตัวรับสูงสุด 10 ตัวต่อไดรเวอร์) RS-422 ถูกสร้างขึ้นเพื่อแทนที่ RS-232 เมื่อ RS-232 ไม่มีให้ โหมดความเร็วและระยะการส่งสัญญาณ

RS-422 ใช้สายไฟบริสุทธิ์ (สองคู่): สายหนึ่งสำหรับรับ, อีกสายหนึ่งสำหรับการส่ง (และอีกสายหนึ่งสำหรับสัญญาณควบคุม/แฮนด์เชคทั้งหมด) RS-485 มีสถานะที่สาม (“tristate”) และสามารถใช้สายคู่เดียว ซึ่งช่วยลดต้นทุนของระบบและให้การสื่อสารทางไกล ปัจจุบันมีอุปกรณ์ต่างๆ มากมายสำหรับเชื่อมต่อ RS-422/RS-485 กับ RS-232 และ RS-232 มักจะใช้ร่วมกับคอมพิวเตอร์ (แต่ก็มีการ์ดอินเทอร์เฟซ RS-422/RS-485 เข้ากับคอมพิวเตอร์ด้วย ) ซึ่งใช้ในการควบคุมระบบ นอกจากนี้ยังมีอุปกรณ์หลากหลาย (ฮับ รีพีทเตอร์ สวิตช์ ฯลฯ) ที่ให้การกำหนดค่าที่ซับซ้อนของเครือข่าย RS-422/RS-485 ดังนั้น RS-422/RS-485 จึงซ่อนความเป็นไปได้มากมาย

วิธีการต่อสายเครือข่าย RS-485 อย่างถูกต้อง?

RS-485 ส่งข้อมูลแบบดิจิทัลระหว่างวัตถุ สามารถถ่ายโอนข้อมูลด้วยความเร็ว 10 Mbit/s RS-485 ใช้ในการส่งสัญญาณในระยะไกล ความยาวและความเร็วของข้อมูลสำหรับ RS-485 ขึ้นอยู่กับปัจจัยหลายประการ

เคเบิล.

RS-485 ได้รับการออกแบบให้เป็นระบบสมดุล ซึ่งหมายความว่ามีสายสองเส้นที่ใช้ในการส่งข้อมูล

ข้าว. 1. ระบบสมดุลใช้สายไฟสองเส้นในการส่งสัญญาณ

ระบบนี้มีความสมดุลเนื่องจากสัญญาณบนสายทั้งสองที่ปลายทั้งสองข้างอยู่ตรงข้ามกันทุกประการ ดูภาพประกอบ 2.

ข้าว. 2. ข้อมูลทั้งสองด้านของสายไฟแตกต่างกัน

ต้องใช้ RS-485 กับสายคู่ตีเกลียว

เหตุใดจึงใช้สายคู่บิดเกลียว?

นี่คือสายไฟคู่ธรรมดาที่มีความยาวเท่ากัน พวกเขาเป็นผู้ติดตามด้วยกัน เครื่องส่งสายเคเบิลคู่บิดเกลียวช่วยลดปัญหาสองประการสำหรับผู้สร้างเครือข่ายความเร็วสูง: การรบกวนทางแม่เหล็กไฟฟ้า และการรบกวนที่เกิดขึ้น

การรบกวนจากคลื่นแม่เหล็กไฟฟ้า

รูปแสดงให้เห็นว่าเมื่อใช้พัลส์ที่มีขอบนำขนาดใหญ่ สัญญาณจะมีส่วนประกอบความถี่สูง ขอบดังกล่าวจำเป็นสำหรับความเร็วที่สูงกว่าที่ RS-485 สามารถให้ได้

ข้าว. 3. พัลส์สี่เหลี่ยม

ส่วนประกอบความถี่สูงของส่วนหน้าเหล่านี้ที่มีสายไฟขนาดใหญ่ส่งผลให้เกิดการรบกวนทางแม่เหล็กไฟฟ้า ระบบสมดุลใช้สายสื่อสารคู่บิดเกลียว ลดผลกระทบ และตัวส่งสัญญาณก็ไม่จำเป็น ข้อมูลบนสายไฟเหมือนกัน ผกผัน สัญญาณจะเท่ากันและผกผันด้วย สิ่งนี้ทำให้ผลของการลดสัญญาณหนึ่งลงเนื่องจากอีกสัญญาณหนึ่ง ซึ่งหมายความว่าไม่มีรังสีแม่เหล็กไฟฟ้า แต่นี่เป็นเพียงการคาดเดาเท่านั้น การรวมสายไฟจะทำให้รังสีเป็นกลางเนื่องจากความยาวระหว่างสายไฟ

การรบกวนที่เกิดจากแม่เหล็กไฟฟ้า

มันเป็นปัญหาเดียวกันแต่กลับกันเท่านั้น การเชื่อมต่อในระบบที่ใช้ RS-485 ทำหน้าที่เหมือนเสาอากาศ สัญญาณเหล่านี้จะบิดเบือนสัญญาณที่ต้องการ ซึ่งนำไปสู่ปัญหาในข้อมูล นอกจากนี้ยังสามารถลดการพึ่งพาสัญญาณรบกวนได้อีกด้วย เสียงที่สายหนึ่งจะเหมือนกับเสียงที่สายที่สอง เรียกว่าอยู่ในเฟส พวกเขาระงับเสียงรบกวนจากสายไฟทั้งสอง

แนวต้านคู่บิดเกลียวในรูปคลื่น

คู่ที่เกี่ยวพันกันมีคุณสมบัติของคลื่นที่กำหนดโดยผู้ผลิต RS-485 กำหนดให้ตัวต้านทานมีขนาด 120 โอห์ม คำแนะนำด้านอิมพีแดนซ์นี้จำเป็นสำหรับการคำนวณโหลดที่แย่ที่สุดในช่วงแรงดันไฟฟ้าโหมดทั่วไปใน RS-485 ข้อมูลจำเพาะไม่ได้ให้ความต้านทานนี้เพื่อความยืดหยุ่น หากไม่สามารถใช้สายเคเบิล 120 โอห์มได้ จะต้องคำนวณกรณีโหลดเคสที่แย่ที่สุดและช่วงแรงดันไฟฟ้าเคสที่แย่ที่สุดอีกครั้งเพื่อให้แน่ใจว่าระบบทำงานได้ เครื่องส่งสัญญาณสามารถขับเคลื่อนคู่บิดได้เพียงคู่เดียวเท่านั้น ไม่ได้ระบุไว้ในข้อกำหนด

ตัวต้านทานที่ตรงกัน

ตัวต้านทานที่ตรงกันคือตัวต้านทานธรรมดาที่ปลายด้านหนึ่งของสายเคเบิล ขนาดของตัวต้านทานที่ตรงกันจะเท่ากับความต้านทานของสายเคเบิลคลื่น

ข้าว. 4. ตัวต้านทานที่ตรงกันมีความต้านทานเหมือนกับสายคู่บิดเกลียว

หากค่าของตัวต้านทานทั้งสองแตกต่างจากสายเคเบิลคลื่นจะมีการสะท้อนสัญญาณจะถูกขันกลับ ความคลาดเคลื่อนทำให้เกิดการสะท้อนกลับทำให้เกิดข้อผิดพลาดในข้อมูล


ข้าว. 5.รับสัญญาณจาก MAX3485. สัญญาณทางด้านขวาได้มาจากการจับคู่กับตัวต้านทาน

จำเป็นต้องตกลงกันในการประมาณขนาดของตัวต้านทานและคลื่นที่ตรงกันให้มากขึ้น ไม่สำคัญว่าตัวต้านทานปลายสายจะติดตั้งอยู่ที่ปลายทั้งสองด้านของสายเคเบิลหรือไม่

ตามธรรมเนียมแล้ว ตัวต้านทานปลายสายจะถูกวางไว้ที่ปลายสายเคเบิล แม้ว่าจะเป็นการดีกว่าถ้าทำให้ปลายทั้งสองข้างตรงกันเป็นสิ่งสำคัญสำหรับการออกแบบระบบหลายๆ แบบ ในกรณีหนึ่ง จำเป็นต้องใช้ตัวต้านทานเพียงตัวเดียวเท่านั้น กรณีนี้เกิดในระบบที่มีเครื่องส่ง อยู่ที่ปลายอีกด้านของสายเคเบิล ไม่จำเป็นต้องวางตัวต้านทานไว้ที่ปลายสายเคเบิลพร้อมกับตัวส่งสัญญาณ เนื่องจากสัญญาณจะมาจากตัวต้านทานนั้น

เครื่องรับและส่งสัญญาณจำนวนมากที่สุดในเครือข่าย

เครือข่าย RS-485 ทั่วไปประกอบด้วยเครื่องรับและเครื่องส่ง RS-485 ให้ความยืดหยุ่น ทำให้มีตัวส่งและตัวรับต่อคู่มากขึ้น จำนวนสูงสุดขึ้นอยู่กับโหลดของระบบ

ตามหลักการแล้ว เครื่องส่งและเครื่องรับจะมีอิมพีแดนซ์สูงและจะไม่โหลดระบบ มันจะเป็นแบบนั้นไม่ได้จริงๆ ตัวรับสัญญาณที่เชื่อมต่ออยู่จะเพิ่มภาระ เพื่อช่วยให้นักพัฒนาเครือข่าย RS-485 ค้นหาจำนวนอุปกรณ์ที่จะเพิ่มลงในเครือข่าย เราจึงสร้างหน่วยโหลดขึ้นมา การออกแบบดังกล่าวมีลักษณะเฉพาะด้วยตัวคูณหรือโหลด

ตัวรับและตัวส่งทีละตัว

ตัวต้านทานจะถูกจับคู่บนสายไฟที่หันไปทางเครื่องส่งสัญญาณ คุณสามารถย้ายตัวส่งสัญญาณไปที่ขอบสายไฟที่ใกล้ที่สุด และเพิ่มตัวส่งสัญญาณเข้ากับเครือข่าย

ข้าว. 6. RS-485 มีตัวรับสัญญาณหนึ่งตัวและตัวส่งสัญญาณหนึ่งตัวแต่ละตัว

เครื่องรับหลายเครื่องและเครื่องส่งหนึ่งเครื่อง

สิ่งสำคัญมากที่นี่คือความยาวจากคู่บิดจะน้อยที่สุด

ข้าว. 7. เครือข่ายที่มีเครื่องรับหลายเครื่องและเครื่องส่งหนึ่งเครื่อง

เครือข่ายผิด เครือข่ายไม่สอดคล้องกัน

ลองเปรียบเทียบการกำหนดข้อมูลจากเครือข่ายที่ไม่ถูกต้องของระบบที่พัฒนาแล้ว วัดที่จุด A และ B ที่นี่ที่ขอบของตัวต้านทานคู่หนึ่งสำหรับการจับคู่ สัญญาณมาจากแหล่งกำเนิดและพบกับวงจรบนสายเคเบิล สิ่งนี้นำไปสู่การทำลายอิมพีแดนซ์การสะท้อนกลับ ในวงจรเปิด พลังงานจะไหลย้อนกลับ ส่งผลให้สัญญาณผิดเพี้ยน


ข้าว. 8. เครือข่ายไม่สอดคล้องกัน รูปร่างสัญญาณไม่ถูกต้อง

ตำแหน่งเทอร์มิเนเตอร์ไม่ถูกต้อง

มีตัวต้านทานที่ตรงกัน แต่วางแตกต่างจากปลายอีกด้านหนึ่งของสายเคเบิล สัญญาณพบกับอิมพีแดนซ์และไม่ตรงกัน และเชื่อมต่อเข้ากับตัวต้านทาน ความต้านทานถูกจับคู่กับความต้านทานของสายเคเบิล สายเคเบิลเพิ่มเติมทำให้เกิดความไม่ตรงกันและสะท้อนหน้าจอ อีกด้านที่ไม่ตรงกันคือปลายอีกด้านหนึ่งของสายเคเบิล

ข้าว. 9. เครือข่ายที่มีตัวต้านทานวางไม่ถูกต้องซึ่งเป็นสัญญาณ

สายเคเบิลคอมโพสิต

ปัญหาเกิดขึ้นกับไดรเวอร์ซึ่งออกแบบมาเพื่อขับเคลื่อนสายเคเบิลคู่บิดเกลียวเส้นเดียว ไม่ใช่ว่าตัวส่งสัญญาณทุกตัวจะสามารถขับเคลื่อนคู่ขนานที่บิดเบี้ยวได้ 4 คู่ ไม่รับประกันระดับขั้นต่ำเชิงตรรกะ นอกจากโหลดที่มีขนาดใหญ่แล้ว ยังมีความต้านทานที่แตกต่างกันในการเชื่อมต่อสายเคเบิลอีกด้วย ความแตกต่างของอิมพีแดนซ์หมายถึงการสะท้อนและการบิดเบือนของสัญญาณ

ข้าว. 10. เครือข่ายไม่ถูกต้องที่มีหลายคู่

ก๊อกขยาย

จับคู่สายเคเบิลแล้ว ตัวส่งสัญญาณถูกโหลดลงบนคู่บิดเกลียวคู่เดียว ส่วนสายไฟที่จุดเชื่อมต่อเครื่องรับยาวเกินไป ก๊อกขนาดใหญ่มีอิมพีแดนซ์ขนาดใหญ่ไม่ตรงกันและสะท้อนสัญญาณ ก๊อกถูกสร้างขึ้นให้มีความยาวสั้นที่สุด


ข้าว. 11. วางโครงข่ายด้วยข้อต่อสามเมตรและสัญญาณผลลัพธ์เมื่อเปรียบเทียบกับสัญญาณที่มีข้อต่อขนาดเล็ก

ขั้นตอนใดบ้างที่จำเป็นในการทำความเข้าใจการควบคุมผ่านโปรโตคอล RS485

  1. ค้นหาเอกสารการออกแบบ มันถูกแนบในรูปแบบที่พิมพ์กับเครื่องกำเนิดความถี่และมีความเกี่ยวข้อง สามารถแนบเอกสารมาได้ที่ ในรูปแบบอิเล็กทรอนิกส์บนดิสก์ คุณสามารถค้นหาเอกสารออนไลน์ได้
  2. เราค้นหาหมายเลขฉบับแก้ไขและเวอร์ชัน เป้าหมายของเราคือเวอร์ชันของโปรแกรม
  3. ศึกษาเอกสารโดยใช้คำเฉพาะ
  4. ค้นหาแผนผังการเชื่อมต่อของสายเชื่อมต่อและ pinout ของขั้วต่อ
  5. ค้นหาคำอธิบายของรีจิสเตอร์ Modbus นี่คือการ์ดหน่วยความจำ รีจิสเตอร์เรียกว่าตัวแปร
  6. การกำหนดประเภทการกำหนดแอดเดรสของตัวแปร Modbus มีการกำหนดแอดเดรสที่แตกต่างกันสองประเภท คือ แบบลอจิคัลและฟิสิคัล
  7. การระบุทิศทางการค้นหา นี่เป็นขั้นตอนที่รับผิดชอบ

ในเทคโนโลยีสมัยใหม่ทุกอย่าง มูลค่าที่สูงขึ้นรับการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ และจำเป็นต้องส่งข้อมูลทั้งในระยะทางสั้นและระยะทางไกลตามลำดับกิโลเมตร การถ่ายโอนข้อมูลประเภทหนึ่งคือการสื่อสารระหว่างอุปกรณ์ผ่านอินเทอร์เฟซ RS-485

ในกรณีที่จำเป็นต้องส่งข้อมูลผ่าน RS 485

หนึ่งในตัวอย่างที่พบบ่อยที่สุดของการใช้อุปกรณ์สำหรับการแลกเปลี่ยนข้อมูลคือ มิเตอร์ไฟฟ้าที่รวมกันเป็นเครือข่ายเดียวจะกระจายอยู่ในตู้ เซลล์สวิตช์เกียร์ และแม้แต่สถานีไฟฟ้าย่อยที่อยู่ห่างจากกันมาก ในกรณีนี้ อินเทอร์เฟซจะใช้เพื่อส่งข้อมูลจากอุปกรณ์วัดแสงตั้งแต่หนึ่งเครื่องขึ้นไป

ระบบ "หนึ่งเมตร - หนึ่งโมเด็ม" กำลังถูกนำไปใช้อย่างแข็งขันเพื่อถ่ายโอนข้อมูลไปยังบริการของบริษัทจัดหาพลังงานจากศูนย์วัดแสงของบ้านส่วนตัวและองค์กรขนาดเล็ก

อีกตัวอย่างหนึ่ง: การรับข้อมูลจากเทอร์มินัลการป้องกันรีเลย์ไมโครโปรเซสเซอร์แบบเรียลไทม์ รวมถึงการเข้าถึงแบบรวมศูนย์เพื่อวัตถุประสงค์ในการเปลี่ยนแปลง เพื่อจุดประสงค์นี้ เทอร์มินัลจะเชื่อมต่อผ่านอินเทอร์เฟซการสื่อสารในลักษณะเดียวกัน และข้อมูลจากนั้นจะถูกส่งไปยังคอมพิวเตอร์ที่ติดตั้งที่โปรแกรมเลือกจ่ายงาน หากมีการกระตุ้นการป้องกัน เจ้าหน้าที่ปฏิบัติการจะมีโอกาสได้รับข้อมูลเกี่ยวกับตำแหน่งและลักษณะของความเสียหายต่อวงจรไฟฟ้าทันที

แต่ปัญหาที่ยากที่สุดที่แก้ไขได้ด้วยอินเทอร์เฟซการสื่อสารคือระบบควบคุมแบบรวมศูนย์สำหรับกระบวนการผลิตที่ซับซ้อน - ระบบควบคุมกระบวนการอัตโนมัติ ผู้ปฏิบัติงานในโรงงานอุตสาหกรรมจะมีคอมพิวเตอร์อยู่บนโต๊ะ โดยเขาจะเห็นสถานะปัจจุบันของกระบวนการบนจอแสดงผล เช่น อุณหภูมิ ผลผลิต หน่วยที่เปิดและปิด โหมดการทำงาน และมีความสามารถในการควบคุมทั้งหมดนี้ด้วยการคลิกเมาส์เบา ๆ

คอมพิวเตอร์แลกเปลี่ยนข้อมูลกับคอนโทรลเลอร์ - อุปกรณ์ที่แปลงคำสั่งจากเซ็นเซอร์เป็นภาษาที่เครื่องเข้าใจได้ และการแปลงแบบย้อนกลับ: จากภาษาของเครื่องเป็นคำสั่งควบคุม การสื่อสารกับคอนโทรลเลอร์ตลอดจนระหว่างคอนโทรลเลอร์ต่าง ๆ นั้นดำเนินการผ่านอินเทอร์เฟซการสื่อสาร


อินเทอร์เฟซ RS-232 เป็นน้องชายของ RS 485

เป็นไปไม่ได้ที่จะไม่พูดถึงอินเทอร์เฟซ RS-232 สั้น ๆ ซึ่งเรียกอีกอย่างว่าอนุกรม แล็ปท็อปบางเครื่องมีขั้วต่อสำหรับพอร์ตที่เกี่ยวข้อง และอุปกรณ์ดิจิตอลบางตัว (เทอร์มินัลป้องกันรีเลย์เดียวกัน) มีเอาต์พุตสำหรับการสื่อสารโดยใช้ RS-232

ในการแลกเปลี่ยนข้อมูล คุณจะต้องสามารถส่งและรับข้อมูลได้ เพื่อจุดประสงค์นี้จึงมีเครื่องส่งและรับสัญญาณ มีอยู่ในทุกอุปกรณ์ นอกจากนี้ เอาต์พุตตัวส่งสัญญาณของอุปกรณ์หนึ่ง (TX) ยังเชื่อมต่อกับอินพุตตัวรับของอุปกรณ์อื่น (RX) และด้วยเหตุนี้สัญญาณจึงเคลื่อนที่ไปในทิศทางตรงกันข้ามตามตัวนำอื่นในลักษณะเดียวกัน

นี่เป็นโหมดการสื่อสารแบบฮาล์ฟดูเพล็กซ์ กล่าวคือ เครื่องรับและเครื่องส่งสัญญาณสามารถทำงานพร้อมกันได้ ข้อมูลผ่านสายเคเบิล RS-232 สามารถเคลื่อนที่ไปในทิศทางเดียวและอีกทิศทางหนึ่งในเวลาเดียวกัน

ข้อเสียของอินเทอร์เฟซนี้คือการป้องกันเสียงรบกวนต่ำ สิ่งนี้เกิดขึ้นเนื่องจากสัญญาณในสายเชื่อมต่อสำหรับทั้งการรับและการส่งสัญญาณนั้นเกิดขึ้นโดยสัมพันธ์กับสายสามัญ - กราวด์ การรบกวนใด ๆ ที่มีอยู่แม้ในสายเคเบิลที่มีฉนวนหุ้มอาจทำให้การสื่อสารล้มเหลวและการสูญเสียข้อมูลแต่ละบิต และนี่เป็นสิ่งที่ยอมรับไม่ได้ในการจัดการกลไกที่ซับซ้อนและมีราคาแพง โดยที่ข้อผิดพลาดใดๆ ถือเป็นอุบัติเหตุ และการสูญเสียการสื่อสารจะทำให้ระบบหยุดทำงานเป็นเวลานาน

ดังนั้นจึงส่วนใหญ่จะใช้สำหรับการเชื่อมต่อชั่วคราวเล็กน้อยระหว่างแล็ปท็อปและอุปกรณ์ดิจิทัล เช่น เพื่อติดตั้งการกำหนดค่าเริ่มต้นหรือแก้ไขข้อผิดพลาด


การจัดระเบียบอินเทอร์เฟซ RS-485

ข้อแตกต่างหลักระหว่าง RS-458 และ RS-232 ก็คือ เครื่องรับและเครื่องส่งสัญญาณทั้งหมดทำงานบนสายคู่เดียวซึ่งเป็นสายสื่อสาร ในกรณีนี้ไม่ได้ใช้สายกราวด์ และสัญญาณในสายถูกสร้างขึ้นโดยวิธีดิฟเฟอเรนเชียล มันจะถูกส่งพร้อมกันผ่านสายสองเส้น (“A” และ “B”) ในรูปแบบผกผัน

ถ้าเอาท์พุตของเครื่องส่งมีตรรกะเป็น "0" แสดงว่าตัวนำ "A" มีศักย์เป็นศูนย์ บนตัวนำ "B" สัญญาณ "ไม่ใช่ 0" จะถูกสร้างขึ้นนั่นคือ "1" หากเครื่องส่งส่งสัญญาณ "1" สิ่งตรงกันข้ามจะเกิดขึ้น

เป็นผลให้เราได้รับการเปลี่ยนแปลงของแรงดันสัญญาณระหว่างสายสองเส้นซึ่งเป็นสายคู่ตีเกลียว การรบกวนใดๆ ที่เข้ามาในสายเคเบิลจะเปลี่ยนแรงดันไฟฟ้าสัมพันธ์กับกราวด์เท่ากันบนสายไฟทั้งสองเส้นของคู่ แต่แรงดันไฟฟ้าของสัญญาณที่มีประโยชน์นั้นเกิดขึ้นระหว่างสายไฟดังนั้นจึงไม่ได้รับผลกระทบจากศักยภาพของสายไฟเลย

ขั้นตอนการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ ผ่าน RS-485

อุปกรณ์ทั้งหมดที่เชื่อมต่อด้วยอินเทอร์เฟซ RS-485 มีเพียงสองเทอร์มินัล: "A" และ "B" หากต้องการเชื่อมต่อกับเครือข่ายทั่วไป ขั้วต่อเหล่านี้จะเชื่อมต่อแบบวงจรขนาน ในการทำเช่นนี้จะมีการวางสายโซ่จากอุปกรณ์หนึ่งไปอีกเครื่องหนึ่ง

ในกรณีนี้ มีความจำเป็นต้องปรับปรุงการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ การกำหนดลำดับการส่งและรับ รวมถึงรูปแบบของข้อมูลที่ส่ง เพื่อจุดประสงค์นี้ มีการใช้คำสั่งพิเศษที่เรียกว่าโปรโตคอล

มีโปรโตคอลการแลกเปลี่ยนข้อมูลมากมายผ่านทางอินเทอร์เฟซ RS-485 ซึ่งโปรโตคอลที่ใช้กันมากที่สุดคือ Modbas มาดูกันคร่าวๆ ว่าโปรโตคอลที่ง่ายที่สุดทำงานอย่างไร และปัญหาอื่นๆ ที่ต้องแก้ไขด้วยความช่วยเหลือนี้คืออะไร

ตามตัวอย่าง ลองดูที่เครือข่ายที่อุปกรณ์หนึ่งรวบรวมข้อมูลจากแหล่งข้อมูลหลายแหล่ง นี่อาจเป็นโมเด็มและกลุ่มมิเตอร์ไฟฟ้า เพื่อทราบว่าข้อมูลจะมาจากมิเตอร์ใด ตัวรับส่งสัญญาณแต่ละตัวจะได้รับการกำหนดหมายเลขที่ไม่ซ้ำกันสำหรับเครือข่ายที่กำหนด หมายเลขยังถูกกำหนดให้กับตัวรับส่งสัญญาณโมเด็มด้วย

เมื่อถึงเวลารวบรวมข้อมูลการใช้พลังงาน โมเด็มจะสร้างคำขอ ขั้นแรก พัลส์เริ่มต้นจะถูกส่ง โดยที่อุปกรณ์ทั้งหมดเข้าใจว่าคำรหัสกำลังจะมาถึง - ข้อความที่ประกอบด้วยลำดับของศูนย์และหนึ่ง ในนั้นบิตแรกจะสอดคล้องกับหมายเลขสมาชิกบนเครือข่าย ส่วนที่เหลือจะเป็นข้อมูล เช่น คำสั่งในการส่งข้อมูลที่ต้องการ

อุปกรณ์ทั้งหมดได้รับข้อความและเปรียบเทียบจำนวนผู้สมัครสมาชิกกับอุปกรณ์ของตนเอง หากตรงกัน คำสั่งที่ส่งเป็นส่วนหนึ่งของคำขอจะถูกดำเนินการ ถ้าไม่เช่นนั้น อุปกรณ์จะเพิกเฉยต่อข้อความและไม่ทำอะไรเลย

ในเวลาเดียวกัน ในหลายโปรโตคอล การยืนยันจะถูกส่งกลับไปว่าคำสั่งได้รับการยอมรับสำหรับการดำเนินการหรือดำเนินการแล้ว หากไม่มีการตอบสนอง อุปกรณ์ส่งสามารถส่งคำขอซ้ำได้ตามจำนวนที่กำหนด หากยังไม่มีการตอบสนอง ข้อมูลข้อผิดพลาดจะถูกสร้างขึ้นที่เกี่ยวข้องกับความล้มเหลวของช่องทางการสื่อสารกับผู้สมัครสมาชิกแบบไม่ต้องโต้ตอบ

อาจไม่มีคำตอบนอกจากในกรณีที่รถเสียเท่านั้น หากมีการรบกวนอย่างรุนแรงในช่องทางการสื่อสารซึ่งยังคงแทรกซึมไปที่นั่น คำสั่งอาจไม่ไปถึงจุดหมายปลายทาง นอกจากนี้ยังอาจมีการบิดเบือนและไม่ได้รับการจดจำอย่างถูกต้อง

ไม่อนุญาตให้ดำเนินการคำสั่งอย่างไม่ถูกต้อง ดังนั้นจึงมีการป้อนข้อมูลที่ซ้ำซ้อนอย่างเห็นได้ชัดลงในพัสดุข้อมูล - การตรวจสอบ คำนวณตามกฎหมายที่กำหนดในโปรโตคอลที่ด้านการส่ง ที่แผนกต้อนรับ เช็คซัมจะคำนวณตามหลักการเดียวกันและเปรียบเทียบกับอันที่ส่ง หากตรงกัน จะถือว่าการรับสำเร็จและดำเนินการคำสั่ง ถ้าไม่เช่นนั้นอุปกรณ์จะส่งข้อความแสดงข้อผิดพลาดไปยังฝั่งที่ส่ง

ข้อกำหนดสำหรับการเชื่อมต่อสายเคเบิล

ในการเชื่อมต่ออุปกรณ์ด้วยอินเทอร์เฟซ RS-485 จะใช้สายคู่บิดเกลียว แม้ว่าสายไฟหนึ่งคู่จะเพียงพอที่จะส่งข้อมูลได้ แต่โดยปกติแล้วจะใช้สายเคเบิลที่มีอย่างน้อยสองเส้นเพื่อสำรองไว้

เพื่อการป้องกันสัญญาณรบกวนที่ดีขึ้น สายเคเบิลจึงมีชีลด์ และชีลด์ตลอดทั้งสายเชื่อมต่อถึงกัน เพื่อจุดประสงค์นี้ นอกเหนือจากขั้วต่อ “A” และ “B” แล้ว อุปกรณ์ที่เชื่อมต่อยังมีขั้วต่อ “COM” สายจะต่อสายดินเพียงจุดเดียว โดยปกติจะอยู่ที่ตำแหน่งของตัวควบคุม โมเด็ม หรือคอมพิวเตอร์ ห้ามมิให้ทำเช่นนี้ที่จุดสองจุดเพื่อหลีกเลี่ยงการรบกวนที่จะไหลผ่านหน้าจออย่างหลีกเลี่ยงไม่ได้เนื่องจากความต่างศักย์ที่จุดกราวด์

สายเคเบิลเชื่อมต่อกันแบบอนุกรมเท่านั้น ไม่สามารถแยกสาขาได้ เพื่อให้ตรงกับเส้นตรงปลายจะเชื่อมต่อตัวต้านทานที่มีความต้านทาน 120 โอห์ม (นี่คือความต้านทานลักษณะของสายเคเบิล)

โดยทั่วไป การติดตั้งสายเคเบิลอินเทอร์เฟซเป็นเรื่องง่าย การกำหนดค่าอุปกรณ์จะยากกว่ามากซึ่งต้องใช้ผู้ที่มีความรู้พิเศษ

เพื่อให้เข้าใจการทำงานของอินเทอร์เฟซ RS-485 ได้ดีขึ้น เราขอแนะนำให้คุณดูวิดีโอต่อไปนี้:

ช่วงที่เป็นไปได้สูงสุดของสาย RS-485 จะพิจารณาจากคุณลักษณะของสายเคเบิลและสภาพแวดล้อมทางแม่เหล็กไฟฟ้าที่ไซต์การทำงานเป็นหลัก เมื่อใช้สายไฟที่มีเส้นผ่านศูนย์กลางแกนกลาง

0.5 มม. (ส่วนประมาณ 0.2 ตร. มม.) ความยาวสาย RS-485 – ไม่เกิน 1200 ม.

ด้วยพื้นที่หน้าตัด 0.5 ตร.ม. มม. – ไม่เกิน 3,000 ม.

การใช้สายเคเบิลที่มีหน้าตัดแกนน้อยกว่า 0.2 ตารางเมตร มม. ไม่พึงประสงค์

หากสาย RS-485 ยาว (จาก 100 ม.) จำเป็นต้องใช้สายคู่ตีเกลียว

ในการเชื่อมต่ออุปกรณ์เข้ากับอินเทอร์เฟซ RS-485 จำเป็นต้องเชื่อมต่อหน้าสัมผัส "A" และ "B" ของอุปกรณ์เข้ากับบรรทัด A และ B ของอินเทอร์เฟซตามลำดับ อินเทอร์เฟซ RS-485 เกี่ยวข้องกับการใช้การเชื่อมต่อประเภท "บัส" ระหว่างอุปกรณ์ เมื่ออุปกรณ์ทั้งหมดเชื่อมต่อผ่านอินเทอร์เฟซด้วยสายไฟคู่เดียว (เส้น A และ B) ซึ่งจับคู่ที่ปลายทั้งสองข้างด้วยตัวต้านทานที่ตรงกัน (รูปที่ 1)

รูปที่ 1 แผนผังการเชื่อมต่ออุปกรณ์เข้ากับอินเทอร์เฟซลำตัว RS-485

สำหรับการจับคู่จะใช้ตัวต้านทานที่มีความต้านทาน 620 โอห์มซึ่งติดตั้งอยู่ในอุปกรณ์ตัวแรกและตัวสุดท้ายของสาย อุปกรณ์ส่วนใหญ่มีตัวต้านทานการจับคู่ในตัว ซึ่งสามารถรวมไว้ในสายได้โดยการติดตั้งจัมเปอร์บนบอร์ดอุปกรณ์ เนื่องจากจัมเปอร์ได้รับการติดตั้งในสถานะการจัดส่ง จึงต้องถอดจัมเปอร์ออกบนอุปกรณ์ทั้งหมด ยกเว้นจัมเปอร์ตัวแรกและตัวสุดท้ายในสาย RS-485 ในตัวแปลงรีพีทเตอร์ S2000-PI ความต้านทานที่ตรงกันสำหรับเอาต์พุต RS-485 แต่ละตัว (แบบแยกและไม่แยก) จะถูกเปิดโดยสวิตช์ อุปกรณ์ "S2000-K" และ "S2000-KS" ไม่มีตัวต้านทานและจัมเปอร์ที่ตรงกันในตัวสำหรับเชื่อมต่อ หากอุปกรณ์ประเภทนี้เป็นอุปกรณ์แรกหรือสุดท้ายในสาย RS-485 จำเป็นต้องติดตั้งตัวต้านทาน 620 โอห์มระหว่างขั้วต่อ "A" และ "B" ตัวต้านทานนี้มาพร้อมกับอุปกรณ์ รีโมทคอนโทรล "S2000M" ("S2000") สามารถติดตั้งได้ทุกที่บนสาย RS-485 หากเป็นอุปกรณ์ชิ้นแรกหรือชิ้นสุดท้ายในสาย จะมีการติดตั้งตัวต้านทานปลายสาย 620 โอห์ม (รวมอยู่ในการจัดส่ง) ระหว่างขั้วต่อ "A" และ "B" กิ่งบนสาย RS-485 ไม่เป็นที่พึงปรารถนา เนื่องจากจะเพิ่มการบิดเบือนของสัญญาณในสาย แต่ในทางปฏิบัติยอมรับได้สำหรับความยาวกิ่งสั้น (ไม่เกิน 50 เมตร) ตัวต้านทานปลายสายไม่ได้ติดตั้งไว้ในแต่ละสาขา ขอแนะนำให้สร้างกิ่งยาวโดยใช้ทวนสัญญาณ S2000-PI ดังแสดงในรูปที่ 2

รูปที่ 2 การสร้างเครือข่าย RS-485 ด้วยโทโพโลยีแบบดาวโดยใช้ตัวทำซ้ำ

รูปที่ 3 การเพิ่มความยาวของเส้น RS-485 โดยใช้ตัวทำซ้ำอินเทอร์เฟซ

ตัวอย่างเช่นตัวแปลงและทวนของอินเทอร์เฟซที่มีการแยกกัลวานิก "S2000-PI" ช่วยให้คุณสามารถเพิ่มความยาวของเส้นได้สูงสุด 1,500 ม. ให้การแยกกัลวานิกระหว่างส่วนของเส้นตรงและ ตัดการเชื่อมต่อส่วนที่ลัดวงจรของอินเทอร์เฟซ RS-485 โดยอัตโนมัติ.

แต่ละส่วนที่แยกออกจากกันของสาย RS-485 จะต้องจับคู่กันทั้งสองด้าน - ที่จุดเริ่มต้นและจุดสิ้นสุด คุณควรใส่ใจกับการรวมตัวต้านทานที่ตรงกันในแต่ละส่วนของสาย RS-485: ควรเปิดโดยสวิตช์ในทวนสัญญาณ S2000-PI และไม่ใช่โดยจัมเปอร์ในอุปกรณ์เนื่องจากสวิตช์ไม่เพียงเชื่อมต่อตัวต้านทานที่ตรงกันเท่านั้น แต่ยังส่งออกแรงดันไบแอสที่จำเป็นสำหรับสาย RS-485 เพื่อให้รีพีทเตอร์เหล่านี้ทำงานได้อย่างถูกต้อง ความสนใจ! วงจร "0V" ของส่วนของเส้นแยกจะไม่รวมกัน ยิ่งไปกว่านั้น อุปกรณ์ที่แยกออกมาไม่สามารถจ่ายไฟจากแหล่งพลังงานทั่วไปได้เพื่อหลีกเลี่ยงการต่อไฟฟ้าผ่านวงจรไฟฟ้าทั่วไป
เมื่อใช้รีพีทเตอร์ S2000-PI คุณสามารถสร้างกิ่งยาวจาก RS-485 Trunk หลักเพื่อสร้างโทโพโลยีแบบดาวได้ ในกรณีนี้ ทั้งส่วนที่สร้างสาขาและแต่ละสาขาต้องตรงกัน ดังแสดงในรูปที่ 2 ควรให้ความสนใจเป็นพิเศษกับข้อเท็จจริงที่ว่าต้องติดตั้งตัวต้านทานที่ตรงกันบน "S2000-PI" โดยสวิตช์
ข้อมูลต่อไปนี้จัดทำโดยฝ่ายสนับสนุนด้านเทคนิคของ Bolid ในระหว่างการติดต่อทางจดหมาย
หากรีโมทคอนโทรลหายไป เราขอแนะนำให้ใช้โปรแกรมการตั้งค่า rs-485 ในรีโมทคอนโทรลเพื่อเพิ่มพารามิเตอร์ "หยุดชั่วคราวก่อนตอบผ่าน RS-232" เป็น 2
หากอุปกรณ์ “S2000-2” สูญหาย แต่มองเห็นรีโมทคอนโทรลได้ เราขอแนะนำให้ตรวจสอบว่ามีการติดตั้งตัวต้านทานปลายสาย R=620 Ohm อย่างถูกต้องหรือไม่ และอุปกรณ์ “0V” เชื่อมต่ออยู่หรือไม่ บนอุปกรณ์ทั้งหมดยกเว้นรีโมทคอนโทรล "S2000" ตัวต้านทานที่ตรงกันจะเชื่อมต่ออยู่หากติดตั้งจัมเปอร์ที่เกี่ยวข้องบนบอร์ดอุปกรณ์ ควรวางตัวต้านทานปลายสายไว้ในอุปกรณ์ตัวแรกและตัวสุดท้าย
หากเป็นไปตามข้อกำหนดอินเทอร์เฟซทั้งหมด สาเหตุของปัญหาอาจเกิดจากการขาดในบรรทัด RS485 เส้นใดเส้นหนึ่ง ("A" หรือ "B") หรือวงจรลัดวงจรถึง "0 V" ลูปสัญญาณเตือนของอุปกรณ์ หรือพื้นผิวที่ต่อสายดิน (ตัวอย่างเช่น เนื่องจากกรอบประตูโลหะของสายเคเบิลถูกหนีบ การแตกในสาย RS-485 เส้นใดเส้นหนึ่งไม่จำเป็นต้องทำให้สูญเสียการสื่อสารกับอุปกรณ์ทั้งหมดหากวงจร "0 V" ของอุปกรณ์และ "S2000- PI” ถูกรวมเข้าด้วยกันและสาย RS-485 มีความยาวสั้น แต่ในกรณีนี้ระดับสัญญาณจะอยู่นอกช่วงที่รับประกันการรับรู้ที่ถูกต้องโดยเครื่องรับ ยังเกิดขึ้นในวงจรป้องกันของอุปกรณ์ใด ๆ อันเป็นผลมาจากการพังทลายของไดโอดป้องกัน (ซีเนอร์ไดโอดที่มีค่าอนุญาตสูง) พลังชีพจรกระจาย) หรือเนื่องจากข้อบกพร่องทางการผลิต เช่น จากการติดตั้งไดโอดป้องกันผิดขั้ว อุปกรณ์ดังกล่าวอาจไม่เพียงแต่มีปัญหาในการสื่อสารกับรีโมทคอนโทรลผ่าน RS-485 เท่านั้น แต่ยังอาจรบกวนอุปกรณ์ทั้งหมดของสาขาที่แยกได้
ขั้นแรก คุณสามารถโทรหาสายกับเครื่องทดสอบเพื่อให้แน่ใจว่าไม่มีการขาดหรือลัดวงจรในสายหรืออุปกรณ์ RS-485 ส่งออกไปที่ "0 V" เมื่อทดสอบเอาต์พุต “A” และ “B” ของอุปกรณ์ คุณต้องจำไว้ว่าเพื่อวัตถุประสงค์ในการป้องกัน เอาต์พุตเหล่านี้จะถูกบายพาสด้วยไดโอดป้องกัน โดยมีแคโทดเชื่อมต่อกับเอาต์พุตที่ได้รับการป้องกันและขั้วบวกอยู่ที่ “0 V” ดังนั้นในอุปกรณ์ที่ใช้งานในขั้วตรง (โพรบบวกของเครื่องทดสอบเชื่อมต่อกับเอาต์พุต, โพรบลบ - ถึง "0 V") เอาต์พุตไม่ควรส่งเสียงกริ่ง แต่ในขั้วย้อนกลับ (โพรบลบของ เครื่องมือทดสอบเชื่อมต่อกับเอาต์พุต) ขึ้นอยู่กับค่าของแรงดันไฟฟ้าที่วัดได้ ผู้ทดสอบสามารถแสดงความต้านทานต่ำที่สอดคล้องกับแรงดันไฟฟ้าตกคร่อมไดโอดไปข้างหน้า (เช่น ประมาณ 0.6 - 0.7 V) หากเอาต์พุตส่งเสียงกริ่งที่ 0 V ในขั้วใดๆ แสดงว่า "การเชื่อม" ของไดโอดป้องกัน หากเอาท์พุตดังในขั้วตรงข้ามกับที่ระบุ อาจบ่งบอกถึงข้อบกพร่องในการผลิต ( การติดตั้งไม่ถูกต้องไดโอดป้องกัน)
นอกจากนี้เรายังดึงความสนใจของคุณไปที่การออกแบบวงจรของวงจรป้องกัน RS-485 ในอุปกรณ์เวอร์ชันใหม่มีการเปลี่ยนแปลง (ตัวอย่างเช่นสำหรับ Signals-20P - เริ่มตั้งแต่เวอร์ชัน 2.04) วงจรป้องกันที่สามารถให้บริการได้ "ใหม่" จะไม่ดังในขั้วตรงหรือขั้วกลับ สิ่งสำคัญ: วงจรจะต้องได้รับการทดสอบด้วยเครื่องทดสอบในโหมดการทดสอบไดโอด ในโหมดการวัดความต้านทาน แรงดันไฟฟ้าในการวัดในเครื่องทดสอบหลายตัวจะน้อยกว่าแรงดันตกคร่อมโดยตรงที่ตกคร่อมไดโอด ดังนั้นเมื่อทำการทดสอบวงจรป้องกันใหม่ วงจรป้องกันการทำงานอาจแตกต่างกันเล็กน้อยจากความผิดพลาด (ในทั้งสองกรณี ผู้ทดสอบสามารถทำได้ แสดงค่าความต้านทานลำดับหลายสิบ kOhms) นอกจากการตรวจสอบความต่อเนื่องของวงจร "A" และ "B" ที่สัมพันธ์กับ "0 V" ในทั้งสองขั้วแล้ว ยังสมเหตุสมผลที่จะทำการวัดที่คล้ายกันระหว่าง "A" และ "B" (จัมเปอร์ที่รวม ความต้านทานโหลดต้องถอดสาย RS-485 ออก)

วงจรเหล่านี้ไม่ควรส่งเสียงกริ่งที่ขั้วการวัดใดๆ (สำหรับวงจรป้องกัน "ใหม่")

ข้อสรุปที่แม่นยำยิ่งขึ้นสามารถทำได้โดยการตรวจสอบสัญญาณในสาย RS-485 โดยใช้ออสซิลโลสโคป วัดสัญญาณระหว่างสาย "A" และ "B" ใกล้กับอินพุต RS-485 ของอุปกรณ์และรีโมทคอนโทรล โพรบออสซิลโลสโคปได้รับการติดตั้งที่บรรทัด "A" ซึ่งเป็นโพรบทั่วไป - ออนไลน์ "B" (คุณต้องระวังที่นี่เนื่องจากออสซิลโลสโคปบางตัวมีอินพุต "ทั่วไป" ที่ต่อสายดินผ่านพินกราวด์ของปลั๊กซึ่งสามารถทำให้เกิดการบิดเบือนได้ หรือการรบกวน โดยเฉพาะหากระบบมีจุดต่อสายดินอื่นอยู่แล้ว) ควรมองเห็นพัลส์ไบโพลาร์บนออสซิลโลสโคป การส่งผ่าน "1" สอดคล้องกับขั้วบวก การส่งผ่าน "0" - ขั้วลบ ความยาวของข้อมูลที่ส่งหนึ่งบิตคือประมาณ 0.1 มิลลิวินาที เงื่อนไขสำหรับการรับสัญญาณที่เชื่อถือได้มีดังนี้: หากแรงดันไฟฟ้าที่อินพุตตัวรับสัญญาณมากกว่า 0.2 V จะยอมรับ "1" หากน้อยกว่า -0.2 V จะยอมรับ "0" หากแรงดันไฟฟ้าอยู่ในช่วง -0.2 ถึง 0.2 V ผลลัพธ์จะไม่ถูกกำหนด และไม่รับประกันการทำงานของ RS-485 ดังนั้น เมื่อใช้ออสซิลโลสโคป คุณจะต้องวัดระดับของสัญญาณ "0" และ "1" และตรวจสอบให้แน่ใจว่าสัญญาณเหล่านั้นเป็นไปตามเงื่อนไขที่ระบุ ที่เอาต์พุตของรีโมทคอนโทรลแรงดันสัญญาณ "1" โดยปกติจะอยู่ที่ประมาณ +4 V แรงดันไฟฟ้า "0" จะอยู่ที่ประมาณ -4 V ที่เอาต์พุตของ "S2000-PI" เมื่อส่งสัญญาณ "0" แรงดันไฟฟ้าก็จะยัง จะอยู่ที่ประมาณ -4 V และเมื่อส่งสัญญาณ“ 1” " - ประมาณ + 0.4 V โดยเปิดตัวต้านทานเทอร์มินัล 620 โอห์มหนึ่งตัวและประมาณ 0.22 V - พร้อมตัวต้านทานเทอร์มินัลสองตัว เมื่อเปลี่ยนจาก "0" เป็น "1" "S2000-PI" จะสร้างพัลส์สั้น (ประมาณ 0.03 ms) โดยมีค่าแรงดันไฟฟ้าประมาณ +4 V หากสัญญาณมีการแกว่งจาก 0 V ถึง -4 V หรือจาก + 4 V (หรือ +0.2 V สำหรับ "S2000-PI") ถึง 0 V เราสามารถสรุปได้ว่าหนึ่งในสาย RS-485 ลัดวงจรไปที่วงจร "0 V"