ใหม่ต่อการออกแบบ PCB - ทำไมไม่มีส่วนประกอบการวางอัตโนมัติอยู่?


23

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


8
ระบบบันทึกอัตโนมัติควรสามารถวางองค์ประกอบได้อย่างเหมาะสมตามข้อ จำกัด (เช่นปุ่ม "ต้องไปที่นี่", "LED สามารถอยู่ที่ใดก็ได้ในพื้นที่นี้") พวกเขาควรจะสามารถเลือกพินที่เหมาะสมที่สุดที่จะใช้กับชิ้นส่วนที่มีพินเทียบเท่าได้มากมาย (เช่น "ใช้ไอโอพินที่มี PWM") น่าเสียดายที่ฉันไม่เคยเห็นที่ทำหน้าที่เหล่านี้มาก่อน บางทีสักวันหนึ่ง.
bigjosh

7
การจัดวาง (และการวางแนวการสลับเกตการสลับพิน) นั้นสำคัญมากจริงๆ มันเป็นสิ่งสำคัญที่สุดสำหรับการหาเส้นทางที่ดี ฉันคิดว่าสมาร์ทโฟนอัตโนมัติควรเริ่มต้นจากการวางแผนผังยกเว้นว่าแผนผังนั้นเป็นหนึ่งใน "กล่องที่ทันสมัยที่ล้อมรอบไปด้วยสิ่งที่น่ารังเกียจของ netlists"
markrages

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

3
ในระยะสั้นการจัดวางองค์ประกอบอย่างเหมาะสมแม้จะไม่มีข้อพิจารณาทั้งหมดที่มาจากการเป็นวงจรจริงและไม่เหมาะเป็นปัญหา CS ที่ยากมาก ในความเป็นจริงมันเป็นตัวอย่างของปัญหาพนักงานขายที่เดินทางและเป็นทางออกที่ดีที่สุดที่เป็นไปไม่ได้
Nick Johnson

2
@ Gregd'Eon ฉันสงสัยเหมือนกัน แน่นอนว่าด้วยผู้ทำงานอัตโนมัติ placers มากขึ้นสามารถเข้าใจบทบาทของ decoupling caps และจำลองสัญญาณรบกวนเป็นต้น
Adam

คำตอบ:


19

ฉันเพิ่งออกแบบ PCB บางตัวเมื่อเร็ว ๆ นี้และฉันขอแนะนำให้คุณอย่าใช้ auto-placer หรือ auto-router สำหรับผลิตภัณฑ์ขั้นสุดท้ายของคุณ (โพรทูสมีตัววางอัตโนมัติ)

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

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

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

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

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


5
+1 สำหรับไส้เดือนและมันฝรั่ง ทุกครั้งที่ฉันใช้ระบบวางแผนอัตโนมัติและระบบอัตโนมัติฉันได้ทำบิตที่สำคัญและปล่อยให้บิตง่าย แต่แม้จะมากเกินไปที่จะถาม: 60% ของคณะกรรมการถูกวางและส่งหลังจากผ่านรอบสุดท้าย ดีกว่าทำทุกอย่างด้วยตัวเองยกเว้นบางทีสำหรับความต้องการขนาดใหญ่ที่มีพื้นที่ว่างมากมาย
มิสเตอร์Mystère

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

1
พิมพ์ผิดในความคิดเห็นของฉันข้างต้น: "สำหรับการออกแบบความต้องการ LOW * ขนาดใหญ่" เห็นได้ชัดว่าความถี่ดิจิตอลความถี่สูงจะทำงานได้ไม่ดีนักเมื่อใช้การ autorouting และ autoplacing ...
Mister Mystère

1
ฉันไม่เห็นเหตุผลทางทฤษฎีใด ๆ ว่าทำไมเราเตอร์อัตโนมัติไม่สามารถคำนึงถึงข้อ จำกัด ดังกล่าวข้างต้นทั้งหมดและแนวปฏิบัติที่ดีที่สุดเมื่อวางชิ้นส่วนอัตโนมัติ อันที่จริงเราเตอร์อัตโนมัติในอุดมคติควรจะสามารถค้นหาตำแหน่งที่เหมาะสมที่ตรงกับเป้าหมายเหล่านี้ได้ดีกว่าที่มนุษย์สามารถทำได้ มันเป็นปัญหาที่ยากที่จะตรวจสอบ แต่ไม่ใช่เป็นไปไม่ได้และฉันพนันได้เลยว่าในไม่ช้าเราจะเริ่มเห็นเราเตอร์อัตโนมัติที่ใช้ระบบคลาวด์พร้อมแท่นวางอัตโนมัติที่สามารถเอาชนะแม้แต่มนุษย์ที่ดีที่สุดได้
bigjosh

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

13

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

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

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


4
แพ็คเกจ CAD ของคุณคืออะไร
มิสเตอร์Mystère

5
รุ่นสูงของ Allegro, decoupling มาจาก Sigrity ตอนนี้เป็นเจ้าของโดยจังหวะ ฉันชอบแผ่นอิเล็กโทร เส้นทางเราเตอร์อัตโนมัติตามเส้นทางใหม่นั้นควรจะดูเหมือนว่าการกำหนดเส้นทางด้วยมือนั้นดูน่าสนใจ
Guy ฮาร์ดแวร์บางคน

ฉันมีลางสังหรณ์นี่อาจเป็นจังหวะ ฉันใช้มันสำหรับการแนะนำการออกแบบ IC มันเป็นแพ็คเกจที่ยอดเยี่ยมและฉันเชื่อว่า autorouter และ autoplacer ของมันอาจจะมีประสิทธิภาพถ้าข้อ จำกัด มีการกำหนดอย่างถูกต้อง (ซึ่งมาจากประสบการณ์ / การฝึกอบรม)
นายMystère

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

12

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

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

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


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

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


10

ย้อนกลับไปในปี 1974-1975 ฉันทำงานในแผนกออกแบบระบบอัตโนมัติที่ Honeywell ปัญหาไม่ได้เปลี่ยนแปลงตั้งแต่นั้นมา:

  1. มันเป็นไปไม่ได้ที่จะเพิ่มประสิทธิภาพ เช่นเดียวกับปัญหาการเพิ่มประสิทธิภาพระดับโลกส่วนใหญ่คือ NP-Complete หมายถึงความซับซ้อนของการคำนวณเติบโตอย่างรวดเร็วอย่างน่ากลัว เนื่องจากคุณไม่สามารถรอเป็นเวลากว่าล้านล้านปี (หรือแย่กว่านั้น) เราสามารถพิจารณาทางออกที่ดีที่สุดว่าเป็นไปไม่ได้
  2. โปรแกรมยังไม่ชัดเจนในสิ่งที่คุณต้องการเพิ่มประสิทธิภาพ การจัดกลุ่มแบบลอจิคัลตามรูปแบบขององค์กรวงจรของคุณ? ติดตามความยาว? คณะกรรมการพื้นที่? เหมือนกาฝาก? การขยายพันธุ์ล่าช้าหรือไม่ การระบายความร้อน (อุณหภูมิสูงสุด)? ระบายความร้อนจากส่วนที่มีกำลังสูงไปจนถึงชิ้นส่วนที่ไวต่ออุณหภูมิหรือไม่ RF ที่ปล่อยออกมา? เสียงรบกวน? คุณสมบัติทางกล (ตัวอย่างเช่นการวางชิ้นส่วนขนาดใหญ่ใกล้กับส่วนรองรับเชิงกลคุณสมบัติการบริการเช่นไม่ให้ตัวเชื่อมต่อที่อยู่ใกล้กันเกินกว่านิ้วมือมนุษย์สามารถจัดการได้ข้อ จำกัด ภายนอกเช่นตำแหน่งตัวเชื่อมต่อหรือการติดตั้งภายในพื้นที่ว่าง กรณีแฟน ๆ ฯลฯ )

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

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

แต่ฉันคาดการณ์ว่าเราจะไม่เคยเห็นรูปแบบอัตโนมัติเต็มรูปแบบตราบใดที่เรามีคนดูและใส่ใจกับผลลัพธ์


มากสำหรับภาวะเอกฐาน ...
ปีเตอร์มอร์เทน

@PeterMortensen ความคิดเห็นของมนุษย์จะไม่สำคัญหลังจากเอกพจน์
Spehro Pefhany

1
ฉันคิดว่าจุดที่ 2 เป็นคำตอบที่เกี่ยวข้องเท่านั้น มีอัลกอริทึมมากมายที่สามารถแก้ปัญหา NP-สมบูรณ์ได้อย่างรวดเร็วด้วยขนาดของปัญหาที่สำคัญในระดับ "ดีพอ" ด้วยค่าใช้จ่ายเวลาที่ยอมรับได้ดีมากพอที่มักจะอยู่ภายใน 2-3% ของที่ดีที่สุด
whatsisname

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

9

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

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

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


ฉันชอบคำตอบนี้แม้ว่ามันจะดูเหมือนว่าซอฟต์แวร์ไม่ได้ขึ้นอยู่กับงานที่ควรจะเป็น
อดัม

6
@ Adam เมื่อคุณได้รับประสบการณ์มากขึ้นคุณจะเข้าใจดีขึ้น กระบวนการจัดวางนั้นซับซ้อนอย่างไม่น่าเชื่อและรังของหนูบอกเพียงบางส่วนของเรื่อง ยกตัวอย่าง decoupling caps, ผู้วางควรจะรู้ได้อย่างไรว่าจะใส่พวกมันได้อย่างไร? เท่าที่มันเป็นความกังวลตัวพิมพ์ใหญ่เหล่านั้นสามารถรวมเข้าด้วยกันในบางตำแหน่งโดยพลการ
Matt Young

2
ข้อ จำกัด ระยะทางดูเหมือนเป็นตัวเลือกที่เป็นไปได้สำหรับสิ่งนั้น
Tim Seguine

ซอฟต์แวร์ของคุณชื่ออะไร
Daniele Testa

2

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.